diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-11-13 02:17:53 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-11-13 02:17:53 +0000 |
commit | 971a9dd36d83520d7040365d2791ad56b6d39411 (patch) | |
tree | 2bb4f700b96a8e36132040891ef26db29f3d45a9 /dump.c | |
parent | 11faa288e292c27cb2ddc4ccdc483b523d26ce19 (diff) | |
download | perl-971a9dd36d83520d7040365d2791ad56b6d39411.tar.gz |
cloned interpreters now actually run and pass all but 55/10386
subtests; various subtle bugs, new and old, observed when running
cloned interpreters have been fixed
still to do:
| * dup psig_ptr table
| * merge PADOP GVs support with "our" SVs (existing PADOPs are too
| simple-minded and grab one pad entry each, heavily bloating
| the pad by not avoiding dups)
| * overloaded constants are not really immutable--they need to
| be PADOPs
| * allocator for constants and OPs need to be spelled differently
| (shared vs interpreter-local allocations)
| * optree refcounting is still missing locking (macros are in place)
| * curstackinfo, {mark,scope,save,ret}stack need to be cloned so
| perl_clone() can be called from within runops*()
p4raw-id: //depot/perl@4553
Diffstat (limited to 'dump.c')
-rw-r--r-- | dump.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -510,18 +510,23 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) } switch (o->op_type) { + case OP_AELEMFAST: case OP_GVSV: case OP_GV: - if (cGVOPo) { +#ifdef USE_ITHREADS + Perl_dump_indent(aTHX_ level, file, "PADIX = %d\n", cPADOPo->op_padix); +#else + if (cSVOPo->op_sv) { SV *tmpsv = NEWSV(0,0); ENTER; SAVEFREESV(tmpsv); - gv_fullname3(tmpsv, (GV*)cGVOPo, Nullch); + gv_fullname3(tmpsv, (GV*)cSVOPo->op_sv, Nullch); Perl_dump_indent(aTHX_ level, file, "GV = %s\n", SvPV(tmpsv, n_a)); LEAVE; } else Perl_dump_indent(aTHX_ level, file, "GV = NULL\n"); +#endif break; case OP_CONST: case OP_METHOD_NAMED: |