summaryrefslogtreecommitdiffstats
path: root/Stash.xs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-11-14 10:43:53 -0600
committerJesse Luehrs <doy@tozt.net>2010-11-14 10:43:53 -0600
commit9aa6fe4f1c0b7719085d51b26b2237f071b1a94f (patch)
tree58fc243e51cdab4801c7e05855ab445bb6cee401 /Stash.xs
parentc9623f1be6ce8fe0b0c8cf996d1941b1fd3ef955 (diff)
downloadpackage-stash-xs-9aa6fe4f1c0b7719085d51b26b2237f071b1a94f.tar.gz
package-stash-xs-9aa6fe4f1c0b7719085d51b26b2237f071b1a94f.zip
a couple more comments
Diffstat (limited to 'Stash.xs')
-rw-r--r--Stash.xs5
1 files changed, 5 insertions, 0 deletions
diff --git a/Stash.xs b/Stash.xs
index 2eb03a0..44e7ce4 100644
--- a/Stash.xs
+++ b/Stash.xs
@@ -39,6 +39,8 @@
#define GvCVOK(g) GvCVu(g) /* XXX: should this really be GvCVu? or GvCV? */
#define GvIOOK(g) GvIO(g)
+/* see above - don't let scalar slots become unpopulated, this breaks
+ * assumptions in core */
#if PERL_VERSION < 10
#define GvSetSV(g,v) do { \
SV *_v = (SV*)(v); \
@@ -461,6 +463,9 @@ add_symbol(self, variable, initial=NULL, ...)
}
*/
+ /* GV_ADDMULTI rather than GV_ADD because otherwise you get 'used only
+ * once' warnings in some situations... i can't reproduce this, but CMOP
+ * triggers it */
glob = gv_fetchsv(name, GV_ADDMULTI, vartype_to_svtype(variable.type));
if (initial) {