diff options
author | Artur Bergman <sky@nanisky.com> | 2002-02-12 18:26:16 +0000 |
---|---|---|
committer | Artur Bergman <sky@nanisky.com> | 2002-02-12 18:26:16 +0000 |
commit | 3275ba964c17f100af90c1175c6541dabcee6dbb (patch) | |
tree | f0d9d60a4c78664d8b16e0c392cf072696da1473 /ext/threads/threads.xs | |
parent | 6e4796bd3be49024552aaa9b22d75a0e64bdf581 (diff) | |
download | perl-3275ba964c17f100af90c1175c6541dabcee6dbb.tar.gz |
Stop failures if you pass an object, sv_dup might not be the right
thing to use since I have a feeling we end up cloning far too much.
(Like the stash for example).... Maybe we need a lightweight sv_dup
that searches the target for things....
Real fix is another option to perl_clone which controls if you should
save stashes.
p4raw-id: //depot/perl@14663
Diffstat (limited to 'ext/threads/threads.xs')
-rwxr-xr-x | ext/threads/threads.xs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/ext/threads/threads.xs b/ext/threads/threads.xs index 0ba81dbd12..83dca93257 100755 --- a/ext/threads/threads.xs +++ b/ext/threads/threads.xs @@ -424,8 +424,10 @@ Perl_ithread_join(pTHX_ SV *obj) { AV* params = (AV*) SvRV(thread->params); CLONE_PARAMS clone_params; + clone_params.stashes = newAV(); PL_ptr_table = ptr_table_new(); retparam = (AV*) sv_dup((SV*)params, &clone_params); + SvREFCNT_dec(clone_params.stashes); SvREFCNT_inc(retparam); ptr_table_free(PL_ptr_table); PL_ptr_table = NULL; |