diff options
author | Olly Betts <olly@survex.com> | 2015-01-14 15:38:55 +1300 |
---|---|---|
committer | Olly Betts <olly@survex.com> | 2015-01-14 15:38:55 +1300 |
commit | 0dd685bad224ea2a586340b46ea5fa25e8d9422c (patch) | |
tree | 50c38468823db664977d56669dc0b021d5a879ab | |
parent | 558ded2cebaaaba55c2e6adb10ca932fb1c2d260 (diff) | |
download | swig-0dd685bad224ea2a586340b46ea5fa25e8d9422c.tar.gz |
Fix PHP crash in director_finalizer
-rw-r--r-- | Lib/php/director.swg | 3 | ||||
-rw-r--r-- | Source/Modules/php.cxx | 4 |
2 files changed, 2 insertions, 5 deletions
diff --git a/Lib/php/director.swg b/Lib/php/director.swg index 06eeb73b0..92c149999 100644 --- a/Lib/php/director.swg +++ b/Lib/php/director.swg @@ -98,8 +98,7 @@ namespace Swig { TSRMLS_SET_CTX(swig_zts_ctx); } - bool swig_is_overridden_method(char *cname, char *lc_fname) { - TSRMLS_FETCH_FROM_CTX(swig_zts_ctx); + static bool swig_is_overridden_method(char *cname, char *lc_fname TSRMLS_DC) { zend_class_entry **ce; zend_function *mptr; diff --git a/Source/Modules/php.cxx b/Source/Modules/php.cxx index 00dfb064e..a2f0e3687 100644 --- a/Source/Modules/php.cxx +++ b/Source/Modules/php.cxx @@ -915,10 +915,8 @@ public: } 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", + Printf(f->code, "upcall = !Swig::Director::swig_is_overridden_method((char *)\"%s%s\", (char *)\"%s\" TSRMLS_CC);\n", prefix, Swig_class_name(Swig_methodclass(n)), name); } |