]> granicus.if.org Git - php/commitdiff
zend_register_null_constant
authorkrakjoe <joe.watkins@live.co.uk>
Mon, 15 Apr 2013 19:47:13 +0000 (20:47 +0100)
committerkrakjoe <joe.watkins@live.co.uk>
Mon, 15 Apr 2013 19:47:13 +0000 (20:47 +0100)
fixed zend_register_bool_constant usage in macros
use REGISTER_MAIN_* in zend_register_standard_constants

Zend/zend_constants.c
Zend/zend_constants.h

index 64b5edb81f66a444ffdfcd9837b90cfcc1d08b46..594559d58bf06814cc51d971a565c9e3bdc6b23b 100644 (file)
@@ -119,38 +119,12 @@ void zend_register_standard_constants(TSRMLS_D)
        REGISTER_MAIN_LONG_CONSTANT("DEBUG_BACKTRACE_IGNORE_ARGS", DEBUG_BACKTRACE_IGNORE_ARGS, CONST_PERSISTENT | CONST_CS);
        /* true/false constants */
        {
-               zend_constant c;
-       
-               c.flags = CONST_PERSISTENT | CONST_CT_SUBST;
-               c.module_number = 0;
-
-               c.name = zend_strndup(ZEND_STRL("TRUE"));
-               c.name_len = sizeof("TRUE");
-               ZVAL_BOOL(&c.value, 1);
-               zend_register_constant(&c TSRMLS_CC);
-               
-               c.name = zend_strndup(ZEND_STRL("FALSE"));
-               c.name_len = sizeof("FALSE");
-               ZVAL_BOOL(&c.value, 0);
-               zend_register_constant(&c TSRMLS_CC);
-
-               c.name = zend_strndup(ZEND_STRL("NULL"));
-               c.name_len = sizeof("NULL");
-               ZVAL_NULL(&c.value);
-               zend_register_constant(&c TSRMLS_CC);
-
-               c.flags = CONST_PERSISTENT | CONST_CS;
-
-               c.name = zend_strndup(ZEND_STRL("ZEND_THREAD_SAFE"));
-               c.name_len = sizeof("ZEND_THREAD_SAFE");
-               ZVAL_BOOL(&c.value, ZTS_V);
-               zend_register_constant(&c TSRMLS_CC);
-
-               c.name = zend_strndup(ZEND_STRL("ZEND_DEBUG_BUILD"));
-               c.name_len = sizeof("ZEND_DEBUG_BUILD");
-               ZVAL_BOOL(&c.value, ZEND_DEBUG);
-               zend_register_constant(&c TSRMLS_CC);
+               REGISTER_MAIN_BOOL_CONSTANT("TRUE", 1, CONST_PERSISTENT | CONST_CT_SUBST);
+               REGISTER_MAIN_BOOL_CONSTANT("FALSE", 0, CONST_PERSISTENT | CONST_CT_SUBST);
+               REGISTER_MAIN_BOOL_CONSTANT("ZEND_THREAD_SAFE", ZTS_V, CONST_PERSISTENT | CONST_CS);
+               REGISTER_MAIN_BOOL_CONSTANT("ZEND_DEBUG_BUILD", ZEND_DEBUG, CONST_PERSISTENT | CONST_CS);
        }
+       REGISTER_MAIN_NULL_CONSTANT("NULL", CONST_PERSISTENT | CONST_CT_SUBST);
 }
 
 
@@ -171,6 +145,18 @@ void clean_non_persistent_constants(TSRMLS_D)
        }
 }
 
+ZEND_API void zend_register_null_constant(const char *name, uint name_len, int flags, int module_number TSRMLS_DC)
+{
+       zend_constant c;
+       
+       ZVAL_NULL(&c.value);
+       c.flags = flags;
+       c.name = zend_strndup(name, name_len-1);
+       c.name_len = name_len;
+       c.module_number = module_number;
+       zend_register_constant(&c TSRMLS_CC);
+}
+
 ZEND_API void zend_register_bool_constant(const char *name, uint name_len, zend_bool bval, int flags, int module_number TSRMLS_DC)
 {
        zend_constant c;
index a377c0f7ea11ceafdba31acbd27e64b2e52647e4..718c173cc7b9683a52102c416f379fadd9c844de 100644 (file)
@@ -38,19 +38,22 @@ typedef struct _zend_constant {
        int module_number;
 } zend_constant;
 
+#define REGISTER_NULL_CONSTANT(name, flags)  zend_register_null_constant((name), sizeof(name), (flags), module_number TSRMLS_CC)
 #define REGISTER_BOOL_CONSTANT(name, bval, flags)  zend_register_bool_constant((name), sizeof(name), (bval), (flags), module_number TSRMLS_CC)
 #define REGISTER_LONG_CONSTANT(name, lval, flags)  zend_register_long_constant((name), sizeof(name), (lval), (flags), module_number TSRMLS_CC)
 #define REGISTER_DOUBLE_CONSTANT(name, dval, flags)  zend_register_double_constant((name), sizeof(name), (dval), (flags), module_number TSRMLS_CC)
 #define REGISTER_STRING_CONSTANT(name, str, flags)  zend_register_string_constant((name), sizeof(name), (str), (flags), module_number TSRMLS_CC)
 #define REGISTER_STRINGL_CONSTANT(name, str, len, flags)  zend_register_stringl_constant((name), sizeof(name), (str), (len), (flags), module_number TSRMLS_CC)
 
-#define REGISTER_NS_BOOL_CONSTANT(ns, name, bval, flags)  zend_register_long_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (bval), (flags), module_number TSRMLS_CC)
+#define REGISTER_NS_NULL_CONSTANT(ns, name, flags)  zend_register_null_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (flags), module_number TSRMLS_CC)
+#define REGISTER_NS_BOOL_CONSTANT(ns, name, bval, flags)  zend_register_bool_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (bval), (flags), module_number TSRMLS_CC)
 #define REGISTER_NS_LONG_CONSTANT(ns, name, lval, flags)  zend_register_long_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (lval), (flags), module_number TSRMLS_CC)
 #define REGISTER_NS_DOUBLE_CONSTANT(ns, name, dval, flags)  zend_register_double_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (dval), (flags), module_number TSRMLS_CC)
 #define REGISTER_NS_STRING_CONSTANT(ns, name, str, flags)  zend_register_string_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (str), (flags), module_number TSRMLS_CC)
 #define REGISTER_NS_STRINGL_CONSTANT(ns, name, str, len, flags)  zend_register_stringl_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name)), (str), (len), (flags), module_number TSRMLS_CC)
 
-#define REGISTER_MAIN_BOOL_CONSTANT(name, bval, flags)  zend_register_long_constant((name), sizeof(name), (bval), (flags), 0 TSRMLS_CC)
+#define REGISTER_MAIN_NULL_CONSTANT(name, flags)  zend_register_null_constant((name), sizeof(name), (flags), 0 TSRMLS_CC)
+#define REGISTER_MAIN_BOOL_CONSTANT(name, bval, flags)  zend_register_bool_constant((name), sizeof(name), (bval), (flags), 0 TSRMLS_CC)
 #define REGISTER_MAIN_LONG_CONSTANT(name, lval, flags)  zend_register_long_constant((name), sizeof(name), (lval), (flags), 0 TSRMLS_CC)
 #define REGISTER_MAIN_DOUBLE_CONSTANT(name, dval, flags)  zend_register_double_constant((name), sizeof(name), (dval), (flags), 0 TSRMLS_CC)
 #define REGISTER_MAIN_STRING_CONSTANT(name, str, flags)  zend_register_string_constant((name), sizeof(name), (str), (flags), 0 TSRMLS_CC)
@@ -66,6 +69,7 @@ void clean_non_persistent_constants(TSRMLS_D);
 ZEND_API int zend_get_constant(const char *name, uint name_len, zval *result TSRMLS_DC);
 ZEND_API int zend_get_constant_ex(const char *name, uint name_len, zval *result, zend_class_entry *scope, ulong flags TSRMLS_DC);
 ZEND_API void zend_register_bool_constant(const char *name, uint name_len, zend_bool bval, int flags, int module_number TSRMLS_DC);
+ZEND_API void zend_register_null_constant(const char *name, uint name_len, int flags, int module_number TSRMLS_DC);
 ZEND_API void zend_register_long_constant(const char *name, uint name_len, long lval, int flags, int module_number TSRMLS_DC);
 ZEND_API void zend_register_double_constant(const char *name, uint name_len, double dval, int flags, int module_number TSRMLS_DC);
 ZEND_API void zend_register_string_constant(const char *name, uint name_len, char *strval, int flags, int module_number TSRMLS_DC);