Add missing return for pure virtual director wrappers for D and C#
This commit is contained in:
parent
ebd37155a8
commit
320df84607
2 changed files with 10 additions and 2 deletions
|
|
@ -3826,7 +3826,7 @@ public:
|
||||||
|
|
||||||
qualified_return = SwigType_rcaststr(returntype, "c_result");
|
qualified_return = SwigType_rcaststr(returntype, "c_result");
|
||||||
|
|
||||||
if (!is_void && !ignored_method) {
|
if (!is_void && (!ignored_method || pure_virtual)) {
|
||||||
if (!SwigType_isclass(returntype)) {
|
if (!SwigType_isclass(returntype)) {
|
||||||
if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) {
|
if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) {
|
||||||
String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0));
|
String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0));
|
||||||
|
|
@ -3936,6 +3936,10 @@ public:
|
||||||
Delete(super_call);
|
Delete(super_call);
|
||||||
} else {
|
} else {
|
||||||
Printf(w->code, "Swig::DirectorPureVirtualException::raise(\"%s::%s\");\n", SwigType_namestr(c_classname), SwigType_namestr(name));
|
Printf(w->code, "Swig::DirectorPureVirtualException::raise(\"%s::%s\");\n", SwigType_namestr(c_classname), SwigType_namestr(name));
|
||||||
|
if (!is_void)
|
||||||
|
Printf(w->code, "return %s;", qualified_return);
|
||||||
|
else if (!ignored_method)
|
||||||
|
Printf(w->code, "return;\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ignored_method)
|
if (!ignored_method)
|
||||||
|
|
|
||||||
|
|
@ -1975,7 +1975,7 @@ public:
|
||||||
|
|
||||||
qualified_return = SwigType_rcaststr(returntype, "c_result");
|
qualified_return = SwigType_rcaststr(returntype, "c_result");
|
||||||
|
|
||||||
if (!is_void && !ignored_method) {
|
if (!is_void && (!ignored_method || pure_virtual)) {
|
||||||
if (!SwigType_isclass(returntype)) {
|
if (!SwigType_isclass(returntype)) {
|
||||||
if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) {
|
if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) {
|
||||||
String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0));
|
String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0));
|
||||||
|
|
@ -2078,6 +2078,10 @@ public:
|
||||||
Delete(super_call);
|
Delete(super_call);
|
||||||
} else {
|
} else {
|
||||||
Printf(w->code, "Swig::DirectorPureVirtualException::raise(\"%s::%s\");\n", SwigType_namestr(c_classname), SwigType_namestr(name));
|
Printf(w->code, "Swig::DirectorPureVirtualException::raise(\"%s::%s\");\n", SwigType_namestr(c_classname), SwigType_namestr(name));
|
||||||
|
if (!is_void)
|
||||||
|
Printf(w->code, "return %s;", qualified_return);
|
||||||
|
else if (!ignored_method)
|
||||||
|
Printf(w->code, "return;\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ignored_method)
|
if (!ignored_method)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue