diff --git a/Lib/swig.swg b/Lib/swig.swg index 01ff85837..d8f0bcadf 100644 --- a/Lib/swig.swg +++ b/Lib/swig.swg @@ -152,6 +152,12 @@ #define %nonaturalvar %feature("naturalvar","0") #define %clearnaturalvar %feature("naturalvar","") +/* valuewrapper directives */ +#define %valuewrapper %feature("valuewrapper",) +#define %clearvaluewrapper %feature("valuewrapper","") +#define %novaluewrapper %feature("novaluewrapper") +#define %clearnovaluewrapper %feature("novaluewrapper","") + /* Contract support - Experimental and undocumented */ #define %contract %feature("contract") diff --git a/Source/Swig/typesys.c b/Source/Swig/typesys.c index 9f097b859..c582acd63 100644 --- a/Source/Swig/typesys.c +++ b/Source/Swig/typesys.c @@ -1272,7 +1272,7 @@ SwigType *SwigType_alttype(SwigType *t, int local_tmap) { } } else { if (SwigType_issimple(td) && SwigType_istemplate(td)) { - use_wrapper = 1; + use_wrapper = !GetFlag(n,"feature:novaluewrapper"); } } if (use_wrapper) {