Add utility macros: newAV_mortal() and newHV_mortal()
[gitmo/Mouse.git] / mouse.h
diff --git a/mouse.h b/mouse.h
index a7a5986..fdca9bc 100644 (file)
--- a/mouse.h
+++ b/mouse.h
@@ -38,6 +38,9 @@ AV* mouse_mro_get_linear_isa(pTHX_ HV* const stash);
 #endif /* !no_mro_get_linear_isa */
 #endif /* mro_get_package_gen */
 
+#define newAV_mortal() (AV*)sv_2mortal((SV*)newAV())
+#define newHV_mortal() (HV*)sv_2mortal((SV*)newHV())
+
 #define MOUSE_CALL_BOOT(name) STMT_START {      \
         EXTERN_C XS(CAT2(boot_, name));         \
         PUSHMARK(SP);                           \
@@ -72,12 +75,12 @@ bool mouse_is_class_loaded(pTHX_ SV*);
 #define mcall0s(invocant, m)       mcall0((invocant), sv_2mortal(newSVpvs_share(m)))
 #define mcall1s(invocant, m, arg1) mcall1((invocant), sv_2mortal(newSVpvs_share(m)), (arg1))
 
-#define get_metaclass_by_name(name) mouse_get_metaclass_by_name(aTHX_ name)
+#define get_metaclass(name) mouse_get_metaclass(aTHX_ name)
 
 SV* mouse_call0(pTHX_ SV *const self, SV *const method);
 SV* mouse_call1(pTHX_ SV *const self, SV *const method, SV* const arg1);
 
-SV* mouse_get_metaclass_by_name(pTHX_ SV* const metaclass_name);
+SV* mouse_get_metaclass(pTHX_ SV* metaclass_name);
 
 GV* mouse_stash_fetch(pTHX_ HV* const stash, const char* const name, I32 const namelen, I32 const create);
 #define stash_fetch(s, n, l, c) mouse_stash_fetch(aTHX_ (s), (n), (l), (c))