Change 29137 by nicholas@nicholas-saigo on 2006/10/29 20:23:57
Integrate:
[ 26060]
Add a comment about possible future refactoring of the pad code.
[ 26123]
Suppress gcc warnings when ignoring the return value of io_close(),
as suggested by Gisle Aas.
[ 26124]
Fix indentation of apidoc for sv_2pvutf8
(so perlapi.pod is correctly generated)
[ 26176]
Down with "warning: code has no effect"
Affected files
//depot/maint-5.8/perl/XSUB.h#31 integrate
//depot/maint-5.8/perl/embed.fnc#156 integrate
//depot/maint-5.8/perl/pad.c#52 integrate
//#75 integrate
//depot/maint-5.8/perl/proto.h#145 integrate
//depot/maint-5.8/perl/sv.c#262 integrate
Differences
//depot/maint-5.8/perl/XSUB.h#31 (text)
Index: perl/XSUB.h
perl/XSUB.h#30~29022~2006-10-15 02:41:52.000000000 -0700
perl/XSUB.h2006-10-29 12:23:57.000000000 -0800
@@ -307,7 +307,7 @@
*/
#define DBM_setFilter(db_type,code)\
-{\
+STMT_START {\
if (db_type)\
RETVAL = sv_mortalcopy(db_type) ;\
ST(0) = RETVAL ;\
@@ -321,9 +321,10 @@
else\
db_type = newSVsv(code) ;\
} \
-}
+} STMT_END
#define DBM_ckFilter(arg,type,name)\
+ STMT_START {\
if (db->type) {\
if (db->filtering) {\
croak("recursion detected in %s", name) ;\
@@ -348,7 +349,7 @@
arg = sv_2mortal(arg); \
} \
SKp(arg); \
-}
+} } STMT_END
#if 1/* for compatibility */
# define VTBL_sv&PL_vtbl_sv
//depot/maint-5.8/perl/embed.fnc#156 (text)
Index: perl/embed.fnc
perl/embed.fnc#155~29134~2006-10-29 11:28:47.000000000 -0800
perl/embed.fnc2006-10-29 12:23:57.000000000 -0800
@@ -329,7 +329,7 @@
Ap|void|init_tm|NN struct tm *ptm
pd|U32|intro_my
ApPR|char*|instr|NN const char* big|NN const char* little
-pR|bool|io_close|NN I* io|bool not_implicit
+p|bool|io_close|NN I* io|bool not_implicit
pR|P*|invert|NULLK P* cmd
dpR|bool|is_gv_magical|NN char *name|STRLEN len|U32 flags
ApR|I32|is_lvalue_sub
//depot/maint-5.8/perl/pad.c#52 (text)
Index: perl/pad.c
perl/pad.c#51~28129~2006-05-08 13:15:44.000000000 -0700
perl/pad.c2006-10-29 12:23:57.000000000 -0800
@@ -393,7 +393,13 @@
/* XXX DAPM integrate alloc(), add_name() and add_anon(),
* or at least rationalise ? */
-
+/* And flag whether the incoming name is UTF8 or 8 bit?
+ Could do this either with the +ve/-ve hack of the HV code, or expanding
+ the flag bits. Either way, this makes proper Unicode safe pad support.
+ Also could change the sv structure to make the NV a union with 2 U32s,
+ so that SvCUR() could stop being overloaded in pad SVs.
+ NWC
+*/
PADFFSET
Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype)
//depot/maint-5.8/perl/proto.h#145 (text+w)
Index: perl/proto.h
perl/proto.h#144~29134~2006-10-29 11:28:47.000000000 -0800
perl/proto.h2006-10-29 12:23:57.000000000 -0800
@@ -427,9 +427,7 @@
__attribute__pure__;
-PERL_CALLCNV boolPerl_io_close(pTHX_ I* io, bool not_implicit)
-;
-
+PERL_CALLCNV boolPerl_io_close(pTHX_ I* io, bool not_implicit);
PERL_CALLCNV P*Perl_invert(pTHX_ P* cmd)
;
//depot/maint-5.8/perl/sv.c#262 (text)
Index: perl/sv.c
perl/sv.c#261~29087~2006-10-22 16:09:33.000000000 -0700
perl/sv.c2006-10-29 12:23:57.000000000 -0800
@@ -2609,21 +2609,21 @@
}
/*
- * =for apidoc sv_2pvutf8
- *
- * Return a pointer to the UTF-8-encoded representation of the SV, and set *lp
- * to its length. May cause the SV to be upgraded to UTF-8 as a side-effect.
- *
- * Usually accessed via the C<SvPVutf8macro.
- *
- * =cut
- * */
+=for apidoc sv_2pvutf8
+
+Return a pointer to the UTF-8-encoded representation of the SV, and set *lp
+to its length. May cause the SV to be upgraded to UTF-8 as a side-effect.
+
+Usually accessed via the C<SvPVutf8macro.
+
+=cut
+*/
char *
Perl_sv_2pvutf8(pTHX_ register SV *sv, STRLEN *lp)
{
- sv_utf8_upgrade(sv);
- return lp ? SvPV(sv,*lp) : SvPV_nolen(sv);
+ sv_utf8_upgrade(sv);
+ return lp ? SvPV(sv,*lp) : SvPV_nolen(sv);
}
End of Patch.