+2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * 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.
+
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
* extension-priv.h (enum ext_lang_rc): Remove, move to extension.h.
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
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;
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. */
}
else
*valp = value_from_xmethod
- (xm_worker_vec[ext_method_oload_champ]->clone ());
+ (std::move (xm_worker_vec[ext_method_oload_champ]));
}
else
*symp = oload_syms[func_oload_champ];