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;
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));
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);