aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-xmethods.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2018-01-07 09:25:33 -0500
committerSimon Marchi <simon.marchi@ericsson.com>2018-01-07 09:25:33 -0500
commitf979c73fd0be9a8a683f79af40c7b939c2a65d9f (patch)
treebd3778595c1cf1ad5659e43435e329027f095a84 /gdb/python/py-xmethods.c
parentba18742c3a1b62ff218db99bee47bb932af6dab9 (diff)
downloadbinutils-f979c73fd0be9a8a683f79af40c7b939c2a65d9f.zip
binutils-f979c73fd0be9a8a683f79af40c7b939c2a65d9f.tar.gz
binutils-f979c73fd0be9a8a683f79af40c7b939c2a65d9f.tar.bz2
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.
Diffstat (limited to 'gdb/python/py-xmethods.c')
-rw-r--r--gdb/python/py-xmethods.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/gdb/python/py-xmethods.c b/gdb/python/py-xmethods.c
index f4064c2..f7e3c37 100644
--- a/gdb/python/py-xmethods.c
+++ b/gdb/python/py-xmethods.c
@@ -48,10 +48,6 @@ struct python_xmethod_worker : xmethod_worker
value *invoke (value *obj, value **args, int nargs) override;
- /* Implementation of xmethod_worker::clone for Python. */
-
- xmethod_worker_up clone () override;
-
/* Implementation of xmethod_worker::do_get_arg_types for Python. */
ext_lang_rc do_get_arg_types (int *nargs, type ***arg_types) override;
@@ -80,19 +76,6 @@ python_xmethod_worker::~python_xmethod_worker ()
Py_DECREF (m_this_type);
}
-/* See declaration. */
-
-xmethod_worker_up
-python_xmethod_worker::clone ()
-{
- /* We don't do much here, but we still need the GIL. */
- gdbpy_enter enter_py (get_current_arch (), current_language);
-
- xmethod_worker *worker = new python_xmethod_worker (m_py_worker, m_this_type);
-
- return xmethod_worker_up (worker);
-}
-
/* Invoke the "match" method of the MATCHER and return a new reference
to the result. Returns NULL on error. */