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] |
On 06/08/2014 02:58 PM, Doug Evans wrote:
I've given the series another read through. Not as detailed a read through as I want to, but that'll have to wait for a bit.
I really appreciate your efforts here. I owe you a beverage of your choice should we ever meet in person again!
@@ -291,10 +290,8 @@ bpfinishpy_init (PyObject *self, PyObject *args, PyObject *kwargs) struct event_location location; /* Set a breakpoint on the return address. */ - initialize_event_location (&location, LINESPEC_LOCATION); - finish_pc = get_frame_pc (prev_frame); - xsnprintf (small_buf, sizeof (small_buf), "*%s", hex_string (finish_pc)); - EVENT_LOCATION_LINESPEC (&location) = small_buf; + initialize_event_location (&location, ADDRESS_LOCATION); + EVENT_LOCATION_ADDRESS (&location) = get_frame_pc (prev_frame); create_breakpoint (python_gdbarch, &location, NULL, thread, NULL, 0 I can think of two solutions. Maybe there's another even better one. 1) Have a "placement new"-like constructor akin to the existing new_foo_location constructors we have that takes a pointer to the object to initialize. 2) Always use the existing new_foo_location constructors and free the object when done.
My purpose on this was efficiency. I haven't a clue how often a python script could call this, so I opted to handle memory allocations a little more tightly. I have no real objections to either solution, but I guess I would opt for #2 since that both exists and is already widely used.
Do you want me to submit an update to the series for this, or shall I wait for more feedback?
Keith
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |