Change 26693 by [EMAIL PROTECTED] on 2006/01/07 01:24:37
fix coredump on 'local $shared[N]' introduced by change #24942
Affected files ...
... //depot/perl/ext/threads/shared/shared.xs#55 edit
Differences ...
==== //depot/perl/ext/threads/shared/shared.xs#55 (text) ====
Index: perl/ext/threads/shared/shared.xs
--- perl/ext/threads/shared/shared.xs#54~26684~ 2006-01-06 13:13:12.000000000
-0800
+++ perl/ext/threads/shared/shared.xs 2006-01-06 17:24:37.000000000 -0800
@@ -1,6 +1,6 @@
/* shared.xs
*
- * Copyright (c) 2001-2002, Larry Wall
+ * Copyright (c) 2001-2002, 2006 Larry Wall
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
@@ -438,7 +438,7 @@
}
mg = sv_magicext(sv, Nullsv, PERL_MAGIC_shared_scalar,
&sharedsv_scalar_vtbl, (char *)ssv, 0);
- mg->mg_flags |= (MGf_COPY|MGf_DUP|MGf_LOCAL);
+ mg->mg_flags |= (MGf_DUP|MGf_LOCAL);
SvREFCNT_inc(ssv);
if(SvOBJECT(ssv)) {
STRLEN len;
@@ -870,15 +870,6 @@
return 0;
}
-/* free magic for PERL_MAGIC_tiedelem(p) */
-
-int
-sharedsv_elem_mg_free(pTHX_ SV *sv, MAGIC *mg)
-{
- S_sharedsv_dec(aTHX_ S_sharedsv_from_obj(aTHX_ mg->mg_obj));
- return 0;
-}
-
/* Called during cloning of PERL_MAGIC_tiedelem(p) magic in new
* thread */
@@ -895,7 +886,7 @@
sharedsv_elem_mg_STORE, /* set */
0, /* len */
sharedsv_elem_mg_DELETE, /* clear */
- sharedsv_elem_mg_free, /* free */
+ 0, /* free */
0, /* copy */
sharedsv_elem_mg_dup, /* dup */
0 /* local */
@@ -962,9 +953,6 @@
MAGIC *nmg = sv_magicext(nsv,mg->mg_obj,
toLOWER(mg->mg_type),&sharedsv_elem_vtbl,
name, namlen);
- ENTER_LOCK;
- SvREFCNT_inc((SV*)mg->mg_ptr);
- LEAVE_LOCK;
nmg->mg_flags |= MGf_DUP;
return 1;
}
End of Patch.