shared_ptr upcast fixes for D

Same changes that were applied to Java/C# in ab7f526805
This commit is contained in:
William S Fulton 2020-01-23 18:03:22 +00:00
commit 0425a61fa8

View file

@ -3378,14 +3378,16 @@ private:
upcast_wrapper_name); upcast_wrapper_name);
if (smart) { if (smart) {
SwigType *bsmart = Copy(smart); String *smartnamestr = SwigType_namestr(smart);
String *bsmartnamestr = SwigType_namestr(smart);
SwigType *rclassname = SwigType_typedef_resolve_all(c_class_name); SwigType *rclassname = SwigType_typedef_resolve_all(c_class_name);
SwigType *rbaseclass = SwigType_typedef_resolve_all(c_base_name); SwigType *rbaseclass = SwigType_typedef_resolve_all(c_base_name);
Replaceall(bsmart, rclassname, rbaseclass); Replaceall(bsmartnamestr, rclassname, rbaseclass);
Delete(rclassname); Delete(rclassname);
Delete(rbaseclass); Delete(rbaseclass);
String *smartnamestr = SwigType_namestr(smart);
String *bsmartnamestr = SwigType_namestr(bsmart);
Printv(upcasts_code, Printv(upcasts_code,
"SWIGEXPORT ", bsmartnamestr, " * ", upcast_wrapper_name, "SWIGEXPORT ", bsmartnamestr, " * ", upcast_wrapper_name,
"(", smartnamestr, " *objectRef) {\n", "(", smartnamestr, " *objectRef) {\n",
@ -3394,7 +3396,6 @@ private:
"\n", NIL); "\n", NIL);
Delete(bsmartnamestr); Delete(bsmartnamestr);
Delete(smartnamestr); Delete(smartnamestr);
Delete(bsmart);
} else { } else {
Printv(upcasts_code, Printv(upcasts_code,
"SWIGEXPORT ", c_base_name, " * ", upcast_wrapper_name, "SWIGEXPORT ", c_base_name, " * ", upcast_wrapper_name,