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.

Reply via email to