PR3498: more efficient dwfl searching

Wenji Huang wenji.huang@oracle.com
Fri Jul 17 03:11:00 GMT 2009


Frank Ch. Eigler wrote:
> diff --git a/tapsets.cxx b/tapsets.cxx
> index f629d08..4ef5ade 100644
> --- a/tapsets.cxx
> +++ b/tapsets.cxx
> @@ -594,15 +594,15 @@ struct dwarf_builder: public derived_probe_builder
>  
>    dwflpp *get_kern_dw(systemtap_session& sess, const string& module)
>    {
> -    if (kern_dw.find(module) == kern_dw.end())
> -      kern_dw[module] = new dwflpp(sess, module, true);
> +    if (kern_dw[module] == 0)
> +      kern_dw[module] = new dwflpp(sess, module, true); // might throw
>      return kern_dw[module];
>    }
>  
>    dwflpp *get_user_dw(systemtap_session& sess, const string& module)
>    {
> -    if (user_dw.find(module) == user_dw.end())
> -      user_dw[module] = new dwflpp(sess, module, false);
> +    if (user_dw[module] == 0)
> +      user_dw[module] = new dwflpp(sess, module, false); // might throw
>      return user_dw[module];
>    }
Works for me. Thx.

Regards,
Wenji



More information about the Systemtap mailing list