[PATCH] make t/op/undef.t pass

[email protected] (Nicholas Clark) Thu, 4 Mar 2004 03:50:26 +0000
Newsgroups perl.ponie.dev
Message-ID <[email protected]>
With the following patch t/op/undef.t passes. I'm not sure if anything else
that was failing now passes, but I even with this patch I (still) can't get
Dynaloader to build.

I wondered if something analogous changed in av.c would solve things, but
I can't spot any similar problems.

Needs a regen headers.

Nicholas Clark

Index: embed.fnc
===================================================================
RCS file: /cvs/public/ponie/perl/embed.fnc,v
retrieving revision 1.12
diff -d -u -r1.12 embed.fnc
--- embed.fnc	2 Mar 2004 13:00:21 -0000	1.12
+++ embed.fnc	4 Mar 2004 03:43:38 -0000
@@ -977,7 +977,7 @@
 Ap	|char**	|macro_HvNAME	|HV *
 Ap	|IV*	|macro_XHvTOTALKEYS	|HV *
 Ap	|NV*	|macro_XHvPLACEHOLDERS	|HV *
-Ap	|XPVHV**	|macro_HvDATA	|HV *
+Ap	|XPVHV*	|macro_HvDATA	|HV *
 
 Ap	|SV***	|macro_AvARRAY	|AV *
 Ap      |U8*|macro_AvFLAGS  |AV *
Index: hv.h
===================================================================
RCS file: /cvs/public/ponie/perl/hv.h,v
retrieving revision 1.4
diff -d -u -r1.4 hv.h
--- hv.h	2 Mar 2004 12:03:02 -0000	1.4
+++ hv.h	4 Mar 2004 03:43:38 -0000
@@ -168,7 +168,8 @@
 #define HvPMROOT(hv)        (* Perl_macro_HvPMROOT (aTHX_ (HV*)(hv)) )
 #define HvNAME(hv)          (* Perl_macro_HvNAME   (aTHX_ (HV*)(hv)) )
 
-#define HvDATA(hv)          (* Perl_macro_HvDATA   (aTHX_ (HV*)(hv)) )
+/* Sadly we can't do this as an LVALUE */
+#define HvDATA(hv)          (Perl_macro_HvDATA   (aTHX_ (HV*)(hv)) )
 
 #define XHvTOTALKEYS(xhv)    (xhv->xhv_keys)
 #define XHvPLACEHOLDERS(xhv) (xhv->xhv_placeholders)
Index: hv.c
===================================================================
RCS file: /cvs/public/ponie/perl/hv.c,v
retrieving revision 1.4
diff -d -u -r1.4 hv.c
--- hv.c	2 Mar 2004 11:19:40 -0000	1.4
+++ hv.c	4 Mar 2004 03:43:42 -0000
@@ -23,16 +23,12 @@
 
 HE*** Perl_macro_HvARRAY (pTHX_ HV *hv) {
   XPVHV* data = (XPVHV*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(hv));
-  static HE** he;
-  he = (HE**)data->xhv_array;
-  return &(he);
+  return (HE***)&data->xhv_array;
 }
 
 
-XPVHV** Perl_macro_HvDATA (pTHX_ HV *hv) {
-  static XPVHV* data;
-  data = (XPVHV*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(hv));
-  return &(data);
+XPVHV* Perl_macro_HvDATA (pTHX_ HV *hv) {
+  return (XPVHV*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(hv));
 }
 
 STRLEN* Perl_macro_HvFILL (pTHX_ HV *hv) {