diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-11-12 16:59:47 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-11-12 16:59:47 -0600 |
commit | b55c97c24c906e671bb6c7b50bec64889b80f155 (patch) | |
tree | a9910b3d97dce9ac3d696e5d0fe026d1317a27ad | |
parent | 4871b1a089d2ccfc436fb1891f8186a4c80bbc06 (diff) | |
download | package-stash-xs-b55c97c24c906e671bb6c7b50bec64889b80f155.tar.gz package-stash-xs-b55c97c24c906e671bb6c7b50bec64889b80f155.zip |
fix a bug with @ISA that cmop triggers
-rw-r--r-- | Stash.xs | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -209,16 +209,14 @@ SV *_get_package_symbol(SV *self, varspec_t *variable, int vivify) glob = (GV*)(*entry); if (!isGV(glob)) { SV *namesv; - char *name; - STRLEN len; namesv = newSVsv(_get_name(self)); sv_catpvs(namesv, "::"); sv_catpv(namesv, variable->name); - name = SvPV(namesv, len); - - gv_init(glob, namespace, name, len, 1); + /* can't use gv_init here, because it screws up @ISA in a way that I + * can't reproduce, but that CMOP triggers */ + gv_fetchsv(namesv, GV_ADD, vartype_to_svtype(variable->type)); } if (vivify) { |