[svn:ponie] rev 309 - trunk/perl

[email protected] 8 Jul 2005 10:36:33 -0000
Newsgroups perl.ponie.changes
Message-ID <[email protected]>
Author: nicholas
Date: Fri Jul  8 03:36:33 2005
New Revision: 309

Modified:
   trunk/perl/embed.fnc
   trunk/perl/embed.h
   trunk/perl/proto.h
   trunk/perl/sv.c
Log:
Shunt the gubbins of sv_2nv into sv_2nv_backend, so that the call can indrect
via the PMC. Don't actually move the code into the PMC directory yet as "cargo
cult", as it's likely to get refactored in blead, and it's also likely that
it's going to get unpicked into separate PMCs.


Modified: trunk/perl/embed.fnc
==============================================================================
--- trunk/perl/embed.fnc	(original)
+++ trunk/perl/embed.fnc	Fri Jul  8 03:36:33 2005
@@ -704,6 +704,9 @@ Apd	|IO*	|sv_2io		|SV* sv
 Amb	|IV	|sv_2iv		|SV* sv
 Apd	|IV	|sv_2iv_flags	|SV* sv|I32 flags
 Apd	|SV*	|sv_2mortal	|SV* sv
+#if defined(PERL_CORE) || defined(PONIE_CORE)
+po	|NV	|sv_2nv_backend	|SV* sv
+#endif
 Apd	|NV	|sv_2nv		|SV* sv
 Amb	|char*	|sv_2pv		|SV* sv|STRLEN* lp
 Apd	|char*	|sv_2pvutf8	|SV* sv|STRLEN* lp

Modified: trunk/perl/embed.h
==============================================================================
--- trunk/perl/embed.h	(original)
+++ trunk/perl/embed.h	Fri Jul  8 03:36:33 2005
@@ -966,6 +966,8 @@
 #define sv_2io			Perl_sv_2io
 #define sv_2iv_flags		Perl_sv_2iv_flags
 #define sv_2mortal		Perl_sv_2mortal
+#if defined(PERL_CORE) || defined(PONIE_CORE)
+#endif
 #define sv_2nv			Perl_sv_2nv
 #define sv_2pvutf8		Perl_sv_2pvutf8
 #define sv_2pvbyte		Perl_sv_2pvbyte
@@ -3453,6 +3455,10 @@
 #define sv_2io(a)		Perl_sv_2io(aTHX_ a)
 #define sv_2iv_flags(a,b)	Perl_sv_2iv_flags(aTHX_ a,b)
 #define sv_2mortal(a)		Perl_sv_2mortal(aTHX_ a)
+#if defined(PERL_CORE) || defined(PONIE_CORE)
+#ifdef PERL_CORE
+#endif
+#endif
 #define sv_2nv(a)		Perl_sv_2nv(aTHX_ a)
 #define sv_2pvutf8(a,b)		Perl_sv_2pvutf8(aTHX_ a,b)
 #define sv_2pvbyte(a,b)		Perl_sv_2pvbyte(aTHX_ a,b)

Modified: trunk/perl/proto.h
==============================================================================
--- trunk/perl/proto.h	(original)
+++ trunk/perl/proto.h	Fri Jul  8 03:36:33 2005
@@ -672,6 +672,9 @@ PERL_CALLCONV IO*	Perl_sv_2io(pTHX_ SV* 
 /* PERL_CALLCONV IV	sv_2iv(pTHX_ SV* sv); */
 PERL_CALLCONV IV	Perl_sv_2iv_flags(pTHX_ SV* sv, I32 flags);
 PERL_CALLCONV SV*	Perl_sv_2mortal(pTHX_ SV* sv);
+#if defined(PERL_CORE) || defined(PONIE_CORE)
+PERL_CALLCONV NV	Perl_sv_2nv_backend(pTHX_ SV* sv);
+#endif
 PERL_CALLCONV NV	Perl_sv_2nv(pTHX_ SV* sv);
 /* PERL_CALLCONV char*	sv_2pv(pTHX_ SV* sv, STRLEN* lp); */
 PERL_CALLCONV char*	Perl_sv_2pvutf8(pTHX_ SV* sv, STRLEN* lp);

Modified: trunk/perl/sv.c
==============================================================================
--- trunk/perl/sv.c	(original)
+++ trunk/perl/sv.c	Fri Jul  8 03:36:33 2005
@@ -2095,18 +2095,10 @@ Perl_sv_2uv_flags(pTHX_ register SV *sv,
     return SvIsUV(sv) ? SvUVX(sv) : (UV)SvIVX(sv);
 }
 
-/*
-=for apidoc sv_2nv
-
-Return the num value of an SV, doing any necessary string or integer
-conversion, magic etc. Normally used via the C<SvNV(sv)> and C<SvNVx(sv)>
-macros.
-
-=cut
-*/
+/* The code that the PMC calls back to (for now).  */
 
 NV
-Perl_sv_2nv(pTHX_ register SV *sv)
+Perl_sv_2nv_backend(pTHX_ register SV *sv)
 {
     if (!sv)
 	return 0.0;
@@ -2304,6 +2296,23 @@ Perl_sv_2nv(pTHX_ register SV *sv)
     return SvNVX(sv);
 }
 
+
+/*
+=for apidoc sv_2nv
+
+Return the num value of an SV, doing any necessary string or integer
+conversion, magic etc. Normally used via the C<SvNV(sv)> and C<SvNVx(sv)>
+macros.
+
+=cut
+*/
+
+NV
+Perl_sv_2nv(pTHX_ SV *sv)
+{
+    return Perl_sv_2nv_backend(aTHX_ sv);
+}
+
 /* asIV(): extract an integer from the string value of an SV.
  * Caller must validate PVX  */