summaryrefslogtreecommitdiff
path: root/share/swig/2.0.11/php/const.i
diff options
context:
space:
mode:
Diffstat (limited to 'share/swig/2.0.11/php/const.i')
-rw-r--r--share/swig/2.0.11/php/const.i50
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::*) "";