Deprecate find_rundefsvoffset()
Vincent Pit [Thu, 3 Jun 2010 10:08:14 +0000 (12:08 +0200)]
embed.fnc
pod/perl5132delta.pod
proto.h

index 6400f3e..01605a9 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -855,7 +855,7 @@ p   |PADOFFSET|allocmy      |NN const char *const name|const STRLEN len\
                                |const U32 flags
 : Used in op.c and toke.c
 AMpdR  |PADOFFSET|pad_findmy   |NN const char* name|STRLEN len|U32 flags
-Ap     |PADOFFSET|find_rundefsvoffset  |
+ApD    |PADOFFSET|find_rundefsvoffset  |
 : Used in pp.c
 Ap     |SV*    |find_rundefsv  |
 : Used in perly.y
index 92d3b0d..9551f4a 100644 (file)
@@ -181,6 +181,15 @@ XXX Changes which affect the interface available to C<XS> code go here.
 
 =item *
 
+The C<fund_rundefsvoffset> function has been deprecated. It appeared that
+its design was insufficient to reliably get the lexical C<$_> at run-time.
+
+Use the new C<find_rundefsv> function or the C<UNDERBAR> macro instead.
+They directly return the right SV representing C<$_>, whether it's lexical
+or dynamic.
+
+=item *
+
 The following new functions or macros have been added to the public API:
 C<SvNV_nomg>,  C<sv_2nv_flags>, C<find_rundefsv>.
 
diff --git a/proto.h b/proto.h
index c27313c..9ce57d5 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -2509,7 +2509,9 @@ PERL_CALLCONV PADOFFSET   Perl_pad_findmy(pTHX_ const char* name, STRLEN len, U32
 #define PERL_ARGS_ASSERT_PAD_FINDMY    \
        assert(name)
 
-PERL_CALLCONV PADOFFSET        Perl_find_rundefsvoffset(pTHX);
+PERL_CALLCONV PADOFFSET        Perl_find_rundefsvoffset(pTHX)
+                       __attribute__deprecated__;
+
 PERL_CALLCONV SV*      Perl_find_rundefsv(pTHX);
 PERL_CALLCONV OP*      Perl_oopsAV(pTHX_ OP* o)
                        __attribute__warn_unused_result__