Document definition_context
[gitmo/Class-MOP.git] / mop.c
diff --git a/mop.c b/mop.c
index ada6c0e..feae858 100644 (file)
--- a/mop.c
+++ b/mop.c
@@ -202,6 +202,9 @@ mop_get_all_package_symbols (HV *stash, type_filter_t filter)
     return ret;
 }
 
+#define DECLARE_KEY(name)                    { #name, #name, NULL, 0 }
+#define DECLARE_KEY_WITH_VALUE(name, value)  { #name, value, NULL, 0 }
+
 /* the order of these has to match with those in mop.h */
 static struct {
     const char *name;
@@ -235,7 +238,6 @@ void
 mop_prehash_keys ()
 {
     int i;
-
     for (i = 0; i < key_last; i++) {
         const char *value = prehashed_keys[i].value;
         prehashed_keys[i].key = newSVpv(value, strlen(value));
@@ -268,11 +270,11 @@ XS(mop_xs_simple_reader)
         croak("object is not a hashref");
     }
 
-    if (!(he = hv_fetch_ent((HV *)SvRV(self), prehashed_keys[key].key, 0, prehashed_keys[key].hash))) {
-        ST(0) = &PL_sv_undef;
+    if ((he = hv_fetch_ent((HV *)SvRV(self), prehashed_keys[key].key, 0, prehashed_keys[key].hash))) {
+        ST(0) = HeVAL(he);
     }
     else {
-        ST(0) = HeVAL(he);
+        ST(0) = &PL_sv_undef;
     }
 
     XSRETURN(1);