[PHP] Fix segfault in director upcall check
Manifest only when using PHP built with ZTS enabled.
This commit is contained in:
parent
f6b84f414b
commit
682b4dd843
2 changed files with 12 additions and 7 deletions
|
|
@ -826,13 +826,6 @@ public:
|
|||
Delete(args);
|
||||
args = NULL;
|
||||
}
|
||||
if (is_member_director(n)) {
|
||||
Wrapper_add_local(f, "director", "Swig::Director *director = 0");
|
||||
Printf(f->code, "director = dynamic_cast<Swig::Director*>(arg1);\n");
|
||||
Wrapper_add_local(f, "upcall", "bool upcall = false");
|
||||
Printf(f->code, "upcall = !director->swig_is_overridden_method((char *)\"%s%s\", (char *)\"%s\");\n",
|
||||
prefix, Swig_class_name(Swig_methodclass(n)), name);
|
||||
}
|
||||
|
||||
// This generated code may be called:
|
||||
// 1) as an object method, or
|
||||
|
|
@ -921,6 +914,14 @@ public:
|
|||
Delete(source);
|
||||
}
|
||||
|
||||
if (is_member_director(n)) {
|
||||
Wrapper_add_local(f, "director", "Swig::Director *director = 0");
|
||||
Printf(f->code, "director = dynamic_cast<Swig::Director*>(arg1);\n");
|
||||
Wrapper_add_local(f, "upcall", "bool upcall = false");
|
||||
Printf(f->code, "upcall = !director->swig_is_overridden_method((char *)\"%s%s\", (char *)\"%s\");\n",
|
||||
prefix, Swig_class_name(Swig_methodclass(n)), name);
|
||||
}
|
||||
|
||||
Swig_director_emit_dynamic_cast(n, f);
|
||||
|
||||
/* Insert constraint checking code */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue