Added support for a %shutdown %{ %}, or %insert("shutdown") %{ %} block to
inject code into the PHP_MSHUTDOWN_FUNCTION. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7393 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
3ab65a48a0
commit
febf005df2
2 changed files with 12 additions and 4 deletions
|
|
@ -13,6 +13,10 @@
|
||||||
%include "globalvar.i" // Global variables.
|
%include "globalvar.i" // Global variables.
|
||||||
%include "const.i"
|
%include "const.i"
|
||||||
|
|
||||||
|
// use %shutdown %{ " /*code goes here*/ " %} to
|
||||||
|
// insert code in the PHP_MSHUTDOWN_FUNCTION
|
||||||
|
#define %shutdown %insert("shutdown")
|
||||||
|
|
||||||
/* Typemaps for input parameters by value */
|
/* Typemaps for input parameters by value */
|
||||||
|
|
||||||
%include "utils.i"
|
%include "utils.i"
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ static String *phpfilename =0;
|
||||||
static String *s_header;
|
static String *s_header;
|
||||||
static String *s_wrappers;
|
static String *s_wrappers;
|
||||||
static String *s_init;
|
static String *s_init;
|
||||||
|
static String *s_shutdown;
|
||||||
static String *s_vinit;
|
static String *s_vinit;
|
||||||
static String *s_vdecl;
|
static String *s_vdecl;
|
||||||
static String *s_cinit;
|
static String *s_cinit;
|
||||||
|
|
@ -533,6 +534,7 @@ public:
|
||||||
|
|
||||||
/* sections of the output file */
|
/* sections of the output file */
|
||||||
s_init = NewString("/* init section */\n");
|
s_init = NewString("/* init section */\n");
|
||||||
|
s_shutdown = NewString("/* shutdown section */\n");
|
||||||
s_header = NewString("/* header section */\n");
|
s_header = NewString("/* header section */\n");
|
||||||
s_wrappers = NewString("/* wrapper section */\n");
|
s_wrappers = NewString("/* wrapper section */\n");
|
||||||
s_type = NewString("");
|
s_type = NewString("");
|
||||||
|
|
@ -546,6 +548,7 @@ public:
|
||||||
/* Register file targets with the SWIG file handler */
|
/* Register file targets with the SWIG file handler */
|
||||||
Swig_register_filebyname("runtime",f_runtime);
|
Swig_register_filebyname("runtime",f_runtime);
|
||||||
Swig_register_filebyname("init",s_init);
|
Swig_register_filebyname("init",s_init);
|
||||||
|
Swig_register_filebyname("shutdown",s_shutdown);
|
||||||
Swig_register_filebyname("header",s_header);
|
Swig_register_filebyname("header",s_header);
|
||||||
Swig_register_filebyname("wrapper",s_wrappers);
|
Swig_register_filebyname("wrapper",s_wrappers);
|
||||||
|
|
||||||
|
|
@ -692,10 +695,6 @@ public:
|
||||||
Printf(s_init,"#endif\n\n");
|
Printf(s_init,"#endif\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
Printf(s_init,"PHP_MSHUTDOWN_FUNCTION(%s)\n{\n",module);
|
|
||||||
Printf(s_init," return SUCCESS;\n");
|
|
||||||
Printf(s_init,"}\n");
|
|
||||||
|
|
||||||
/* We have to register the constants before they are (possibly) used
|
/* We have to register the constants before they are (possibly) used
|
||||||
* by the pointer typemaps. This all needs re-arranging really as
|
* by the pointer typemaps. This all needs re-arranging really as
|
||||||
* things are being called in the wrong order
|
* things are being called in the wrong order
|
||||||
|
|
@ -738,6 +737,11 @@ public:
|
||||||
Delete(s_cinit);
|
Delete(s_cinit);
|
||||||
Delete(s_vinit);
|
Delete(s_vinit);
|
||||||
|
|
||||||
|
Printf(s_init,"PHP_MSHUTDOWN_FUNCTION(%s)\n{\n",module);
|
||||||
|
Printf(s_init,"%s\n",s_shutdown);
|
||||||
|
Printf(s_init," return SUCCESS;\n");
|
||||||
|
Printf(s_init,"}\n");
|
||||||
|
|
||||||
Printf(s_init,"PHP_RSHUTDOWN_FUNCTION(%s)\n{\n",module);
|
Printf(s_init,"PHP_RSHUTDOWN_FUNCTION(%s)\n{\n",module);
|
||||||
Printf(s_init," return SUCCESS;\n");
|
Printf(s_init," return SUCCESS;\n");
|
||||||
Printf(s_init,"}\n");
|
Printf(s_init,"}\n");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue