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]

[PATCH 2/4 v19] Add xmethod interface to the extension language API


Small change around the invoke_method API as compared to v18. Patch attached.

ChangeLog

2014-05-30  Siva Chandra Reddy  <sivachandra@google.com>

        * defs.h (enum lval_type): New enumerator "lval_xcallable".
        * extension-priv.h (struct extension_language_ops): Add the
        xmethod interface.
        * extension.c (new_xmethod_worker, clone_xmethod_worker,
        get_matching_xmethod_workers, get_xmethod_argtypes,
        invoke_xmethod, free_xmethod_worker,
        free_xmethod_worker_vec): New functions.
        * extension.h: #include "common/vec.h".
        New function declarations.
        (struct xmethod_worker): New struct.
        (VEC (xmethod_worker_ptr)): New vector type.
        (xmethod_worker_ptr): New typedef.
        (xmethod_worker_vec): Likewise.
        * gdbtypes.c (gdbtypes_post_init): Initialize "xmethod" field of
        builtin_type.
        * gdbtypes.h (enum type_code): New enumerator TYPE_CODE_XMETHOD.
        (struct builtin_type): New field "xmethod".
        * valarith.c (value_ptradd): Assert that the value argument is not
        lval_xcallable.
        * valops.c (value_must_coerce_to_target): Return 0 for
        lval_xcallable values.
        * value.c (struct value): New field XM_WORKER in the field
        LOCATION.
        (value_address, value_raw_address): Return 0 for lval_xcallable
        values.
        (set_value_address): Assert that the value is not an
        lval_xcallable.
        (value_free): Free the associated xmethod worker when freeing
        lval_xcallable values.
        (set_value_component_location): Assert that the WHOLE value is not
        lval_xcallable.
        (value_of_xmethod, call_xmethod): New functions.
        * value.h: Declare "struct xmethod_worker".
        Declare new functions value_of_xmethod, call_xmethod.

Attachment: xmethod_extention_language_api_v19.txt
Description: Text document


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