forked from Imagelibrary/binutils-gdb
Remove xmethod_worker::clone
I think that the clone method of xmethod_worker can be removed. It is only used in find_overload_match, to clone an xmethod we want to keep. Instead, we can just std::move it out of the vector and into value_from_xmethod. value_from_xmethod creates a value that will own the xmethod_worker from that point. Other xmethod_workers left in the vector will get destroyed when the vector gets destroyed, but the chosen one will keep living inside the value struct. gdb/ChangeLog: * extension.h (struct xmethod_worker) <clone>: Remove. * python/py-xmethods.c (struct python_xmethod_worker) <clone>: Remove. (python_xmethod_worker::clone): Remove. * valops.c (find_overload_match): Use std::move instead of clone.
This commit is contained in:
committed by
Simon Marchi
parent
ba18742c3a
commit
f979c73fd0
@@ -182,13 +182,6 @@ struct xmethod_worker
|
||||
|
||||
virtual value *invoke (value *obj, value **args, int nargs) = 0;
|
||||
|
||||
/* Clone this worker, returns a new but identical worker.
|
||||
The function get_matching_xmethod_workers returns a vector of matching
|
||||
workers. If a particular worker is selected by GDB to invoke a method,
|
||||
then this function can help in cloning the selected worker. */
|
||||
|
||||
virtual std::unique_ptr<xmethod_worker> clone () = 0;
|
||||
|
||||
/* Return the arg types of the xmethod encapsulated in this worker.
|
||||
An array of arg types is returned. The length of the array is returned in
|
||||
NARGS. The type of the 'this' object is returned as the first element of
|
||||
|
||||
Reference in New Issue
Block a user