X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=mop.h;h=5547745b6e6e67bf92c57a9334ca4d9c0b12e081;hb=15961c86cfd845e6f46b6c362cc1a4b94ffb45db;hp=7566652aab205f8d070aa76a47d077eeba9f81e0;hpb=1be561756ae40c4237d55ed010b5121762d473b0;p=gitmo%2FClass-MOP.git diff --git a/mop.h b/mop.h index 7566652..5547745 100644 --- a/mop.h +++ b/mop.h @@ -12,17 +12,46 @@ #define MOP_CALL_BOOT(name) mop_call_xs(aTHX_ name, cv, mark); +#ifndef XSPROTO +#define XSPROTO(name) XS(name) +#endif + void mop_call_xs (pTHX_ XSPROTO(subaddr), CV *cv, SV **mark); typedef enum { + KEY__expected_method_class, + KEY_ISA, + KEY_VERSION, + KEY_accessor, + KEY_associated_class, + KEY_associated_metaclass, + KEY_associated_methods, + KEY_attribute_metaclass, + KEY_attributes, + KEY_body, + KEY_builder, + KEY_clearer, + KEY_constructor_class, + KEY_constructor_name, + KEY_definition_context, + KEY_destructor_class, + KEY_immutable_trait, + KEY_init_arg, + KEY_initializer, + KEY_insertion_order, + KEY_instance_metaclass, + KEY_is_inline, + KEY_method_metaclass, + KEY_methods, KEY_name, KEY_package, KEY_package_name, - KEY_body, + KEY_predicate, + KEY_reader, + KEY_wrapped_method_metaclass, + KEY_writer, KEY_package_cache_flag, - KEY_methods, - KEY_VERSION, - KEY_ISA, + KEY__version, key_last, } mop_prehashed_key_t;