This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] PR python/18565 - make Frame.function work for inline frames


Sorry, I missed this mail,

On Wed, Jun 22, 2016 at 7:42 PM, Tom Tromey <tom@tromey.com> wrote:
>>>>>> "Yao" == Yao Qi <qiyaoltc@gmail.com> writes:
>
> Yao> Tom Tromey <tom@tromey.com> writes:
>>> TRY
>>> {
>>> +      char *funname;
>>> +      enum language funlang;
>>> +
>>> FRAPY_REQUIRE_VALID (self, frame);
>>>
>>> -      sym = find_pc_function (get_frame_address_in_block (frame));
>>> +      find_frame_funname (frame, &funname, &funlang, &sym);
>>> +      xfree (funname);
>>> }
>>> CATCH (except, RETURN_MASK_ALL)
>>> {
>
> Yao> Call xfree in CATCH block?  Otherwise, patch is good to me.
>
> I looked at this.  I think it's probably better as-is.
> My reasoning is that "funname" is initialized by the call to
> find_frame_funname and isn't otherwise used.  So, putting the free where
> it appears now means that there is no gap between initialization and
> free.
>

The reason I suggested that way is that the exception may be thrown out in
find_frame_funname after the memory is allocated for funname, so we need
xfree in CATCH, and also need xfree afterwards.

-- 
Yao (齐尧)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]