A better fix than 27148
authorSteve Hay <SteveHay@planit.com>
Fri, 10 Feb 2006 17:46:35 +0000 (17:46 +0000)
committerSteve Hay <SteveHay@planit.com>
Fri, 10 Feb 2006 17:46:35 +0000 (17:46 +0000)
Subject: Win32 assert (was Re: Smoke [5.9.4] 27145 FAIL(M) MSWin32 WinXP/.Net SP2 (x86/2 cpu))
From: Nicholas Clark <nick@ccl4.org>
Date: Fri, 10 Feb 2006 14:58:47 +0000
Message-ID: <20060210145847.GA85020@plum.flirble.org>

Subject: RE: Win32 assert (was Re: Smoke [5.9.4] 27145 FAIL(M) MSWin32 WinXP/.Net SP2 (x86/2 cpu))
From: "Jan Dubois" <jand@ActiveState.com>
Date: Fri, 10 Feb 2006 09:03:41 -0800
Message-ID: <024401c62e63$f1e53c10$6062a8c0@candy>

p4raw-id: //depot/perl@27152

embed.fnc
embed.h
hv.c
perl.h
proto.h
sv.c

index a3c70d6..90294ba 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1043,7 +1043,7 @@ s |void   |hsplit         |NN HV *hv
 s      |void   |hfreeentries   |NN HV *hv
 sa     |HE*    |new_he
 sanR   |HEK*   |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
-s      |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
+sn     |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
 s      |void   |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
 sR     |HEK*   |share_hek_flags|NN const char* sv|I32 len|U32 hash|int flags
 rs     |void   |hv_notallowed  |int flags|NN const char *key|I32 klen|NN const char *msg
@@ -1350,7 +1350,7 @@ s |void * |more_bodies    |size_t size|svtype sv_type
 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
-sR     |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *tbl|NN const void *sv
+sRn    |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *tbl|NN const void *sv
 s      |SV *   |find_hash_subscript|NULLOK HV *hv|NN SV *val
 s      |I32    |find_array_subscript|NULLOK AV *av|NN SV *val
 s      |SV *   |find_uninit_var|NULLOK OP *obase|NULLOK SV *uninit_sv|bool match
diff --git a/embed.h b/embed.h
index 3d6f34b..24c85cd 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define hfreeentries(a)                S_hfreeentries(aTHX_ a)
 #define new_he()               S_new_he(aTHX)
 #define save_hek_flags         S_save_hek_flags
-#define hv_magic_check(a,b,c)  S_hv_magic_check(aTHX_ a,b,c)
+#define hv_magic_check         S_hv_magic_check
 #define unshare_hek_or_pvn(a,b,c,d)    S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
 #define share_hek_flags(a,b,c,d)       S_share_hek_flags(aTHX_ a,b,c,d)
 #define hv_notallowed(a,b,c,d) S_hv_notallowed(aTHX_ a,b,c,d)
 #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)
-#define ptr_table_find(a,b)    S_ptr_table_find(aTHX_ a,b)
+#define ptr_table_find         S_ptr_table_find
 #define find_hash_subscript(a,b)       S_find_hash_subscript(aTHX_ a,b)
 #define find_array_subscript(a,b)      S_find_array_subscript(aTHX_ a,b)
 #define find_uninit_var(a,b,c) S_find_uninit_var(aTHX_ a,b,c)
diff --git a/hv.c b/hv.c
index 4c5615d..061d0ce 100644 (file)
--- a/hv.c
+++ b/hv.c
@@ -857,7 +857,7 @@ S_hv_fetch_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
 }
 
 STATIC void
-S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store)
+S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store)
 {
     const MAGIC *mg = SvMAGIC(hv);
     *needs_copy = FALSE;
diff --git a/perl.h b/perl.h
index 8a91175..de55634 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -3505,7 +3505,6 @@ Gid_t getegid (void);
        ((what) ? ((void) 0) :                                          \
            (Perl_croak_nocontext("Assertion %s failed: file \"" __FILE__ \
                        "\", line %d", STRINGIFY(what), __LINE__),      \
-           PerlProc_exit(1),                                           \
            (void) 0)))
 #endif
 
diff --git a/proto.h b/proto.h
index f9b768a..99b9d01 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -2871,10 +2871,10 @@ STATIC HEK*     S_save_hek_flags(const char *str, I32 len, U32 hash, int flags)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(1);
 
-STATIC void    S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_3);
+STATIC void    S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store)
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(2)
+                       __attribute__nonnull__(3);
 
 STATIC void    S_unshare_hek_or_pvn(pTHX_ const HEK* hek, const char* str, I32 len, U32 hash);
 STATIC HEK*    S_share_hek_flags(pTHX_ const char* sv, I32 len, U32 hash, int flags)
@@ -3735,10 +3735,10 @@ STATIC void     S_glob_assign_ref(pTHX_ SV *dstr, SV *sstr)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-STATIC PTR_TBL_ENT_t * S_ptr_table_find(pTHX_ PTR_TBL_t *tbl, const void *sv)
+STATIC PTR_TBL_ENT_t * S_ptr_table_find(PTR_TBL_t *tbl, const void *sv)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(2);
 
 STATIC SV *    S_find_hash_subscript(pTHX_ HV *hv, SV *val)
                        __attribute__nonnull__(pTHX_2);
diff --git a/sv.c b/sv.c
index 4a79790..a26c14a 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -9294,7 +9294,7 @@ Perl_ptr_table_new(pTHX)
 /* map an existing pointer using a table */
 
 STATIC PTR_TBL_ENT_t *
-S_ptr_table_find(pTHX_ PTR_TBL_t *tbl, const void *sv) {
+S_ptr_table_find(PTR_TBL_t *tbl, const void *sv) {
     PTR_TBL_ENT_t *tblent;
     const UV hash = PTR_TABLE_HASH(sv);
     assert(tbl);
@@ -9309,7 +9309,7 @@ S_ptr_table_find(pTHX_ PTR_TBL_t *tbl, const void *sv) {
 void *
 Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *tbl, const void *sv)
 {
-    PTR_TBL_ENT_t const *const tblent = S_ptr_table_find(aTHX_ tbl, sv);
+    PTR_TBL_ENT_t const *const tblent = ptr_table_find(tbl, sv);
     return tblent ? tblent->newval : (void *) 0;
 }
 
@@ -9318,7 +9318,7 @@ Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *tbl, const void *sv)
 void
 Perl_ptr_table_store(pTHX_ PTR_TBL_t *tbl, const void *oldsv, void *newsv)
 {
-    PTR_TBL_ENT_t *tblent = S_ptr_table_find(aTHX_ tbl, oldsv);
+    PTR_TBL_ENT_t *tblent = S_ptr_table_find(tbl, oldsv);
 
     if (tblent) {
        tblent->newval = newsv;