]> granicus.if.org Git - php/commitdiff
added ZVAL_*() macros.
authorThies C. Arntzen <thies@php.net>
Tue, 4 Jan 2000 13:56:17 +0000 (13:56 +0000)
committerThies C. Arntzen <thies@php.net>
Tue, 4 Jan 2000 13:56:17 +0000 (13:56 +0000)
Zend/zend_API.h

index ac0e4383bf87f7b241e63a2c3777d62680af7732..ff357ca15342e72f27ce3e0a44785e4cb7fe843e 100644 (file)
@@ -142,6 +142,47 @@ ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
 
 #define add_method(arg,key,method)     add_assoc_function((arg),(key),(method))
 
+#define ZVAL_RESOURCE(z,l) {                   \
+               (z)->type = IS_RESOURCE;        \
+               (z)->value.lval = l;            \
+       }
+#define ZVAL_BOOL(z,b) {                               \
+               (z)->type = IS_BOOL;            \
+               (z)->value.lval = b;            \
+       }
+#define ZVAL_NULL(z) {                                 \
+               (z)->type = IS_NULL;            \
+       }
+#define ZVAL_LONG(z,l) {                               \
+               (z)->type = IS_LONG;            \
+               (z)->value.lval = l;            \
+       }
+#define ZVAL_DOUBLE(z,d) {                             \
+               (z)->type = IS_DOUBLE;          \
+               (z)->value.dval = d;            \
+       }
+#define ZVAL_STRING(z,s,duplicate) {   \
+               char *__s=(s);                                  \
+               (z)->value.str.len = strlen(__s);       \
+               (z)->value.str.val = (duplicate?estrndup(__s,(z)->value.str.len):__s);  \
+               (z)->type = IS_STRING;          \
+       }
+#define ZVAL_STRINGL(z,s,l,duplicate) {        \
+               char *__s=(s); int __l=l;               \
+               (z)->value.str.len = __l;           \
+               (z)->value.str.val = (duplicate?estrndup(__s,__l):__s); \
+               (z)->type = IS_STRING;              \
+       }
+
+#define ZVAL_EMPTY_STRING(z) {         \
+               (z)->value.str.len = 0;             \
+               (z)->value.str.val = empty_string \
+               (z)->type = IS_STRING;              \
+       }
+
+#define ZVAL_FALSE  { (z)->value.lval = 0;  (z)->type = IS_BOOL; }
+#define ZVAL_TRUE   { (z)->value.lval = 1;  (z)->type = IS_BOOL; }
+
 #define RETVAL_RESOURCE(l) {                   \
                return_value->type = IS_RESOURCE;\
                return_value->value.lval = l;   \
@@ -174,6 +215,12 @@ ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
                return_value->type = IS_STRING;         \
        }
 
+#define RETVAL_EMPTY_STRING() {                    \
+               return_value->value.str.len = 0;        \
+               return_value->value.str.val = empty_string \
+               return_value->type = IS_STRING;         \
+       }
+
 #define RETVAL_FALSE  { return_value->value.lval = 0;  return_value->type = IS_BOOL; }
 #define RETVAL_TRUE   { return_value->value.lval = 1;  return_value->type = IS_BOOL; }
 
@@ -219,6 +266,13 @@ ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
                return;                                                         \
        }
 
+#define RETURN_EMPTY_STRING() {                    \
+               return_value->value.str.len = 0;        \
+               return_value->value.str.val = empty_string \
+               return_value->type = IS_STRING;         \
+        return;                             \
+       }
+
 #define RETURN_FALSE  { RETVAL_FALSE; return; }
 #define RETURN_TRUE   { RETVAL_TRUE; return; }
 
@@ -309,6 +363,7 @@ ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
        ZEND_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), name, name_length, var, _refcount, _is_ref)
 
 #define HASH_OF(p) ((p)->type==IS_ARRAY ? (p)->value.ht : (((p)->type==IS_OBJECT ? (p)->value.obj.properties : NULL)))
+#define ZVAL_IS_NULL(z) ((z)->type==IS_NULL)
 
 #endif /* _ZEND_API_H */