diff options
Diffstat (limited to 'share/swig/2.0.11/php/const.i')
-rw-r--r-- | share/swig/2.0.11/php/const.i | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/share/swig/2.0.11/php/const.i b/share/swig/2.0.11/php/const.i new file mode 100644 index 0000000..78f3a8a --- /dev/null +++ b/share/swig/2.0.11/php/const.i @@ -0,0 +1,50 @@ +/* ----------------------------------------------------------------------------- + * const.i + * + * Typemaps for constants + * ----------------------------------------------------------------------------- */ + +%typemap(consttab) int, + unsigned int, + short, + unsigned short, + long, + unsigned long, + unsigned char, + signed char, + bool, + enum SWIGTYPE + "SWIG_LONG_CONSTANT($symname, $value);"; + +%typemap(consttab) float, + double + "SWIG_DOUBLE_CONSTANT($symname, $value);"; + +%typemap(consttab) char + "SWIG_CHAR_CONSTANT($symname, $value);"; + +%typemap(consttab) char *, + const char *, + char [], + const char [] + "SWIG_STRING_CONSTANT($symname, $value);"; + +%typemap(consttab) SWIGTYPE *, + SWIGTYPE &, + SWIGTYPE [] { + zval *z_var; + MAKE_STD_ZVAL(z_var); + SWIG_SetPointerZval(z_var, (void*)$value, $1_descriptor, 0); + zend_constant c; + c.value = *z_var; + zval_copy_ctor(&c.value); + 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; + zend_register_constant( &c TSRMLS_CC ); +} + +/* Handled as a global variable. */ +%typemap(consttab) SWIGTYPE (CLASS::*) ""; |