Change 28552 by [EMAIL PROTECTED] on 2006/07/12 09:00:01
Subject: Re: [PATCH] FieldHash coverity-compliant
From: Anno Siegel <[EMAIL PROTECTED]>
Date: Wed, 12 Jul 2006 00:45:44 +0200
Message-Id: <[EMAIL PROTECTED]>
Affected files ...
... //depot/perl/ext/Hash/Util/FieldHash/FieldHash.xs#7 edit
Differences ...
==== //depot/perl/ext/Hash/Util/FieldHash/FieldHash.xs#7 (text) ====
Index: perl/ext/Hash/Util/FieldHash/FieldHash.xs
--- perl/ext/Hash/Util/FieldHash/FieldHash.xs#6~28542~ 2006-07-11
01:06:26.000000000 -0700
+++ perl/ext/Hash/Util/FieldHash/FieldHash.xs 2006-07-12 02:00:01.000000000
-0700
@@ -20,14 +20,23 @@
/* Inquire the object registry (a lexical hash) from perl */
HV* HUF_get_ob_reg(void) {
dSP;
+ HV* ob_reg = NULL;
+ ENTER;
+ SAVETMPS;
+
+ PUSHMARK(SP);
I32 items = call_pv(HUF_OB_REG, G_SCALAR|G_NOARGS);
SPAGAIN;
- if (items == 1) {
- SV* ref = POPs;
- PUTBACK;
- if (ref && SvROK(ref) && SvTYPE(SvRV(ref)) == SVt_PVHV)
- return (HV*)SvRV(ref);
+
+ if (items == 1 && TOPs && SvROK(TOPs) && SvTYPE(SvRV(TOPs)) == SVt_PVHV) {
+ ob_reg = (HV*)SvRV(POPs);
}
+ PUTBACK;
+ FREETMPS;
+ LEAVE;
+
+ if (ob_reg)
+ return ob_reg;
Perl_die(aTHX_ "Can't get object registry hash");
}
End of Patch.