[PHP] Fix the constant typemaps for SWIGTYPE, etc - previously

these used the wrong name for renamed constants.  Add
autodoc_runme.php to the testsuite as a regression test for this.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13062 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Olly Betts 2012-05-10 11:41:19 +00:00
commit fcb46fe2fa
3 changed files with 16 additions and 5 deletions

View file

@ -32,17 +32,14 @@
%typemap(consttab) SWIGTYPE *,
SWIGTYPE &,
SWIGTYPE [] {
/* This actually registers it as a global variable and constant. I don't
* like it, but I can't figure out the zend_constant code... */
zval *z_var;
MAKE_STD_ZVAL(z_var);
SWIG_SetPointerZval(z_var, (void*)$value, $1_descriptor, 0);
/* zend_hash_add(&EG(symbol_table), "$1", sizeof("$1"), (void *)&z_var,sizeof(zval *), NULL); */
zend_constant c;
c.value = *z_var;
zval_copy_ctor(&c.value);
size_t len = sizeof("$1") - 1;
c.name = zend_strndup("$1", len);
size_t len = sizeof("$symname") - 1;
c.name = zend_strndup("$symname", len);
c.name_len = len+1;
c.flags = CONST_CS | CONST_PERSISTENT;
c.module_number = module_number;