Change 30297 by [EMAIL PROTECTED] on 2007/02/14 19:11:41
Integrate:
[ 29673]
Make the ptr_table functions available in an unthreaded perl, as other
code (such as Storable) can take advantage of them.
Affected files ...
... //depot/maint-5.8/perl/embed.fnc#211 edit
... //depot/maint-5.8/perl/embed.h#158 integrate
... //depot/maint-5.8/perl/global.sym#61 edit
... //depot/maint-5.8/perl/intrpvar.h#51 edit
... //depot/maint-5.8/perl/makedef.pl#41 integrate
... //depot/maint-5.8/perl/proto.h#203 edit
... //depot/maint-5.8/perl/sv.c#345 integrate
Differences ...
==== //depot/maint-5.8/perl/embed.fnc#211 (text) ====
Index: perl/embed.fnc
--- perl/embed.fnc#210~30295~ 2007-02-14 10:04:52.000000000 -0800
+++ perl/embed.fnc 2007-02-14 11:11:41.000000000 -0800
@@ -1036,9 +1036,6 @@
ApR |MAGIC* |mg_dup |NULLOK MAGIC* mg|NN CLONE_PARAMS* param
ApR |SV* |sv_dup |NULLOK SV* sstr|NN CLONE_PARAMS* param
Ap |void |rvpv_dup |NN SV* dstr|NN SV *sstr|NN CLONE_PARAMS* param
-#if defined(HAVE_INTERP_INTERN)
-Ap |void |sys_intern_dup |NN struct interp_intern* src \
- |NN struct interp_intern* dst
#endif
Apa |PTR_TBL_t*|ptr_table_new
ApaR |void* |ptr_table_fetch|NN PTR_TBL_t *tbl|NN void *sv
@@ -1046,6 +1043,11 @@
Ap |void |ptr_table_split|NN PTR_TBL_t *tbl
Ap |void |ptr_table_clear|NULLOK PTR_TBL_t *tbl
Ap |void |ptr_table_free|NULLOK PTR_TBL_t *tbl
+#if defined(USE_ITHREADS)
+# if defined(HAVE_INTERP_INTERN)
+Ap |void |sys_intern_dup |NN struct interp_intern* src \
+ |NN struct interp_intern* dst
+# endif
#endif
#if defined(HAVE_INTERP_INTERN)
Ap |void |sys_intern_clear
@@ -1351,9 +1353,7 @@
s |bool |sv_2iuv_common |NN SV *sv
s |void |glob_assign_glob|NN SV *dstr|NN SV *sstr|const int dtype
s |void |glob_assign_ref|NN SV *dstr|NN SV *sstr
-# if defined(USE_ITHREADS)
sRn |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *tbl|NN const void *sv
-# endif
s |void |reset_amagic |NN SV *rv|const bool on
#endif
==== //depot/maint-5.8/perl/embed.h#158 (text+w) ====
Index: perl/embed.h
--- perl/embed.h#157~30292~ 2007-02-14 09:29:10.000000000 -0800
+++ perl/embed.h 2007-02-14 11:11:41.000000000 -0800
@@ -1039,8 +1039,6 @@
#define mg_dup Perl_mg_dup
#define sv_dup Perl_sv_dup
#define rvpv_dup Perl_rvpv_dup
-#if defined(HAVE_INTERP_INTERN)
-#define sys_intern_dup Perl_sys_intern_dup
#endif
#define ptr_table_new Perl_ptr_table_new
#define ptr_table_fetch Perl_ptr_table_fetch
@@ -1048,6 +1046,10 @@
#define ptr_table_split Perl_ptr_table_split
#define ptr_table_clear Perl_ptr_table_clear
#define ptr_table_free Perl_ptr_table_free
+#if defined(USE_ITHREADS)
+# if defined(HAVE_INTERP_INTERN)
+#define sys_intern_dup Perl_sys_intern_dup
+# endif
#endif
#if defined(HAVE_INTERP_INTERN)
#define sys_intern_clear Perl_sys_intern_clear
@@ -1368,13 +1370,7 @@
#define sv_2iuv_common S_sv_2iuv_common
#define glob_assign_glob S_glob_assign_glob
#define glob_assign_ref S_glob_assign_ref
-#endif
-# if defined(USE_ITHREADS)
-#ifdef PERL_CORE
#define ptr_table_find S_ptr_table_find
-#endif
-# endif
-#ifdef PERL_CORE
#define reset_amagic S_reset_amagic
#endif
#endif
@@ -3137,8 +3133,6 @@
#define mg_dup(a,b) Perl_mg_dup(aTHX_ a,b)
#define sv_dup(a,b) Perl_sv_dup(aTHX_ a,b)
#define rvpv_dup(a,b,c) Perl_rvpv_dup(aTHX_ a,b,c)
-#if defined(HAVE_INTERP_INTERN)
-#define sys_intern_dup(a,b) Perl_sys_intern_dup(aTHX_ a,b)
#endif
#define ptr_table_new() Perl_ptr_table_new(aTHX)
#define ptr_table_fetch(a,b) Perl_ptr_table_fetch(aTHX_ a,b)
@@ -3146,6 +3140,10 @@
#define ptr_table_split(a) Perl_ptr_table_split(aTHX_ a)
#define ptr_table_clear(a) Perl_ptr_table_clear(aTHX_ a)
#define ptr_table_free(a) Perl_ptr_table_free(aTHX_ a)
+#if defined(USE_ITHREADS)
+# if defined(HAVE_INTERP_INTERN)
+#define sys_intern_dup(a,b) Perl_sys_intern_dup(aTHX_ a,b)
+# endif
#endif
#if defined(HAVE_INTERP_INTERN)
#define sys_intern_clear() Perl_sys_intern_clear(aTHX)
@@ -3469,13 +3467,7 @@
#define sv_2iuv_common(a) S_sv_2iuv_common(aTHX_ a)
#define glob_assign_glob(a,b,c) S_glob_assign_glob(aTHX_ a,b,c)
#define glob_assign_ref(a,b) S_glob_assign_ref(aTHX_ a,b)
-#endif
-# if defined(USE_ITHREADS)
-#ifdef PERL_CORE
#define ptr_table_find S_ptr_table_find
-#endif
-# endif
-#ifdef PERL_CORE
#define reset_amagic(a,b) S_reset_amagic(aTHX_ a,b)
#endif
#endif
==== //depot/maint-5.8/perl/global.sym#61 (text+w) ====
Index: perl/global.sym
--- perl/global.sym#60~30292~ 2007-02-14 09:29:10.000000000 -0800
+++ perl/global.sym 2007-02-14 11:11:41.000000000 -0800
@@ -636,13 +636,13 @@
Perl_mg_dup
Perl_sv_dup
Perl_rvpv_dup
-Perl_sys_intern_dup
Perl_ptr_table_new
Perl_ptr_table_fetch
Perl_ptr_table_store
Perl_ptr_table_split
Perl_ptr_table_clear
Perl_ptr_table_free
+Perl_sys_intern_dup
Perl_sys_intern_clear
Perl_sys_intern_init
Perl_custom_op_name
==== //depot/maint-5.8/perl/intrpvar.h#51 (text) ====
Index: perl/intrpvar.h
--- perl/intrpvar.h#50~29854~ 2007-01-17 10:52:01.000000000 -0800
+++ perl/intrpvar.h 2007-02-14 11:11:41.000000000 -0800
@@ -454,9 +454,13 @@
PERLVAR(IProc, struct IPerlProc*)
#endif
-#if defined(USE_ITHREADS)
+#if defined(USE_THREADS)
PERLVAR(Iptr_table, PTR_TBL_t*)
+#else
+/* Can't make that variable appear here in the interpreter structure for 5.8.9,
+ as it would break binary compatibility. */
#endif
+
PERLVARI(Ibeginav_save, AV*, NULL) /* save BEGIN{}s when compiling */
#ifdef USE_5005THREADS
@@ -611,3 +615,7 @@
PERLVARA(Ibody_roots, PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */
PERLVAR(Ibody_arenas, void*) /* pointer to list of body-arenas */
+
+#if !defined(USE_THREADS)
+PERLVAR(Iptr_table, PTR_TBL_t*)
+#endif
==== //depot/maint-5.8/perl/makedef.pl#41 (text) ====
Index: perl/makedef.pl
--- perl/makedef.pl#40~30272~ 2007-02-13 15:24:02.000000000 -0800
+++ perl/makedef.pl 2007-02-14 11:11:41.000000000 -0800
@@ -709,9 +709,6 @@
unless ($define{'USE_ITHREADS'}) {
skip_symbols [qw(
- PL_ptr_table
- PL_pte_root
- PL_pte_arenaroot
PL_op_mutex
PL_regex_pad
PL_regex_padav
@@ -732,14 +729,6 @@
Perl_sv_dup
Perl_rvpv_dup
Perl_sys_intern_dup
- Perl_ptr_table_clear
- Perl_ptr_table_fetch
- Perl_ptr_table_free
- Perl_ptr_table_new
- Perl_ptr_table_clear
- Perl_ptr_table_free
- Perl_ptr_table_split
- Perl_ptr_table_store
perl_clone
perl_clone_using
Perl_sharedsv_find
==== //depot/maint-5.8/perl/proto.h#203 (text+w) ====
Index: perl/proto.h
--- perl/proto.h#202~30295~ 2007-02-14 10:04:52.000000000 -0800
+++ perl/proto.h 2007-02-14 11:11:41.000000000 -0800
@@ -102,8 +102,8 @@
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_av_pop(pTHX_ AV* ar);
-PERL_CALLCONV void Perl_av_push(pTHX_ AV* ar, SV* val);
PERL_CALLCONV void Perl_av_create_and_push(pTHX_ AV **const avp, SV *const
val);
+PERL_CALLCONV void Perl_av_push(pTHX_ AV* ar, SV* val);
PERL_CALLCONV void Perl_av_reify(pTHX_ AV* ar);
PERL_CALLCONV SV* Perl_av_shift(pTHX_ AV* ar)
__attribute__warn_unused_result__;
@@ -383,7 +383,7 @@
PERL_CALLCONV void Perl_gv_init(pTHX_ GV* gv, HV* stash, const char* name,
STRLEN len, int multi);
PERL_CALLCONV void Perl_gv_name_set(pTHX_ GV* gv, const char *name, U32
len, U32 flags);
PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 flags);
-PERL_CALLCONV HV* Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen,
I32 create);
+PERL_CALLCONV HV* Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen,
I32 flags);
PERL_CALLCONV HV* Perl_gv_stashsv(pTHX_ SV* sv, I32 flags);
PERL_CALLCONV void Perl_hv_clear(pTHX_ HV* tb);
PERL_CALLCONV void Perl_hv_delayfree_ent(pTHX_ HV* hv, HE* entry);
@@ -899,8 +899,7 @@
PERL_CALLCONV OP* Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
__attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_3);
+ __attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newPMOP(pTHX_ I32 type, I32 flags)
__attribute__malloc__
@@ -1508,8 +1507,6 @@
__attribute__warn_unused_result__;
PERL_CALLCONV void Perl_rvpv_dup(pTHX_ SV* dstr, SV *sstr, CLONE_PARAMS*
param);
-#if defined(HAVE_INTERP_INTERN)
-PERL_CALLCONV void Perl_sys_intern_dup(pTHX_ struct interp_intern* src,
struct interp_intern* dst);
#endif
PERL_CALLCONV PTR_TBL_t* Perl_ptr_table_new(pTHX)
__attribute__malloc__
@@ -1523,6 +1520,10 @@
PERL_CALLCONV void Perl_ptr_table_split(pTHX_ PTR_TBL_t *tbl);
PERL_CALLCONV void Perl_ptr_table_clear(pTHX_ PTR_TBL_t *tbl);
PERL_CALLCONV void Perl_ptr_table_free(pTHX_ PTR_TBL_t *tbl);
+#if defined(USE_ITHREADS)
+# if defined(HAVE_INTERP_INTERN)
+PERL_CALLCONV void Perl_sys_intern_dup(pTHX_ struct interp_intern* src,
struct interp_intern* dst);
+# endif
#endif
#if defined(HAVE_INTERP_INTERN)
PERL_CALLCONV void Perl_sys_intern_clear(pTHX);
@@ -1925,11 +1926,9 @@
STATIC bool S_sv_2iuv_common(pTHX_ SV *sv);
STATIC void S_glob_assign_glob(pTHX_ SV *dstr, SV *sstr, const int dtype);
STATIC void S_glob_assign_ref(pTHX_ SV *dstr, SV *sstr);
-# if defined(USE_ITHREADS)
STATIC PTR_TBL_ENT_t * S_ptr_table_find(PTR_TBL_t *tbl, const void *sv)
__attribute__warn_unused_result__;
-# endif
STATIC void S_reset_amagic(pTHX_ SV *rv, const bool on);
#endif
==== //depot/maint-5.8/perl/sv.c#345 (text) ====
Index: perl/sv.c
--- perl/sv.c#344~30295~ 2007-02-14 10:04:52.000000000 -0800
+++ perl/sv.c 2007-02-14 11:11:41.000000000 -0800
@@ -9181,6 +9181,8 @@
return mgret;
}
+#endif /* USE_ITHREADS */
+
/* create a new pointer-mapping table */
PTR_TBL_t *
@@ -9324,11 +9326,12 @@
Safefree(tbl);
}
+#if defined(USE_ITHREADS)
+
#ifdef DEBUGGING
char *PL_watch_pvx;
#endif
-
void
Perl_rvpv_dup(pTHX_ SV *dstr, SV *sstr, CLONE_PARAMS* param)
{
End of Patch.