The "pointer" argument to S_restore_magic() is not not NULL, because
Nicholas Clark [Mon, 11 Feb 2008 08:54:16 +0000 (08:54 +0000)]
it's actually an integer index wedged into a pointer. (To fit within
the existing save stack API.)

p4raw-id: //depot/perl@33276

embed.fnc
proto.h

index 7a9369c..f4d6633 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1167,7 +1167,7 @@ s |void   |save_magic     |I32 mgs_ix|NN SV *sv
 s      |int    |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN const char *meth
 s      |int    |magic_methcall |NN SV *sv|NN const MAGIC *mg|NN const char *meth|I32 f \
                                |int n|NULLOK SV *val
-s      |void   |restore_magic  |NN const void *p
+s      |void   |restore_magic  |NULLOK const void *p
 s      |void   |unwind_handler_stack|NN const void *p
 
 #endif
diff --git a/proto.h b/proto.h
index feadc30..e3222ae 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -3086,9 +3086,7 @@ STATIC int        S_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, const char *meth, I32
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
 
-STATIC void    S_restore_magic(pTHX_ const void *p)
-                       __attribute__nonnull__(pTHX_1);
-
+STATIC void    S_restore_magic(pTHX_ const void *p);
 STATIC void    S_unwind_handler_stack(pTHX_ const void *p)
                        __attribute__nonnull__(pTHX_1);