/* lenof() */
#define lenof(S) (sizeof(S) - 1)
+#ifndef MIN
+# define MIN(a,b) (a<b?a:b)
+#endif
+#ifndef MAX
+# define MAX(a,b) (a>b?a:b)
+#endif
+
/* STR_SET() */
-#define STR_SET(target, source) \
- if(target) efree(target); \
- target = source
+#ifndef STR_SET
+# define STR_SET(STR, SET) \
+ { \
+ STR_FREE(STR); \
+ STR = SET; \
+ }
+#endif
/* return bool (v == SUCCESS) */
#define RETVAL_SUCCESS(v) RETVAL_BOOL(SUCCESS == (v))
return_value->is_ref = 1; \
return_value->type = IS_OBJECT; \
return_value->value.obj = (ov); \
- zend_objects_store_add_ref(return_value TSRMLS_CC)
+ if (Z_OBJ_HT_P(return_value)->add_ref) { \
+ Z_OBJ_HT_P(return_value)->add_ref(return_value TSRMLS_CC); \
+ }
#define RETURN_OBJVAL(ov) \
RETVAL_OBJVAL(ov); \
return