Change 26350 by [EMAIL PROTECTED] on 2005/12/14 12:44:20

        Subject:  [perl #37919] Blessed scalar refs with threads::shared 
        From:  "Jerry D. Hedden" (via RT) <[EMAIL PROTECTED]>
        Date:  Tue, 13 Dec 2005 15:11:20 -0800
        Message-Id:  <[EMAIL PROTECTED]>
        
        Unlike arrays and hashes, coping blessed refs to shared scalars left
        the copy unblessed

Affected files ...

... //depot/perl/MANIFEST#1336 edit
... //depot/perl/ext/threads/shared/shared.xs#52 edit

Differences ...

==== //depot/perl/MANIFEST#1336 (text) ====
Index: perl/MANIFEST
--- perl/MANIFEST#1335~26341~   2005-12-13 04:17:57.000000000 -0800
+++ perl/MANIFEST       2005-12-14 04:44:20.000000000 -0800
@@ -976,6 +976,7 @@
 ext/threads/shared/t/0nothread.t       Tests for basic shared array 
functionality.
 ext/threads/shared/t/av_refs.t Tests for arrays containing references
 ext/threads/shared/t/av_simple.t       Tests for basic shared array 
functionality.
+ext/threads/shared/t/blessed.t Test blessed shared variables
 ext/threads/shared/t/cond.t    Test condition variables
 ext/threads/shared/t/disabled.t        Test threads::shared when threads are 
disabled.
 ext/threads/shared/t/hv_refs.t Test shared hashes containing references

==== //depot/perl/ext/threads/shared/shared.xs#52 (text) ====
Index: perl/ext/threads/shared/shared.xs
--- perl/ext/threads/shared/shared.xs#51~24526~ 2005-05-21 05:31:52.000000000 
-0700
+++ perl/ext/threads/shared/shared.xs   2005-12-14 04:44:20.000000000 -0800
@@ -378,6 +378,13 @@
                                &sharedsv_scalar_vtbl, (char *)data, 0);
                mg->mg_flags |= (MGf_COPY|MGf_DUP);
                SvREFCNT_inc(ssv);
+               if(SvOBJECT(ssv)) {
+                 STRLEN len;
+                 char* stash_ptr = SvPV((SV*) SvSTASH(ssv), len);
+                 HV* stash = gv_stashpvn(stash_ptr, len, TRUE);
+                 SvOBJECT_on(sv);
+                 SvSTASH_set(sv, (HV*)SvREFCNT_inc(stash));
+               }
            }
            break;
        }
End of Patch.

Reply via email to