ZVAL_STRING(&zfuncname, USERSTREAM_OPEN);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&zfuncname,
&zretval,
4, args,
/* destroy everything else */
if (stream == NULL) {
zval_ptr_dtor(&us->object);
+ ZVAL_UNDEF(&us->object);
efree(us);
}
zval_ptr_dtor(&zretval);
ZVAL_STRING(&zfuncname, USERSTREAM_DIR_OPEN);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&zfuncname,
&zretval,
2, args,
/* destroy everything else */
if (stream == NULL) {
zval_ptr_dtor(&us->object);
+ ZVAL_UNDEF(&us->object);
efree(us);
}
zval_ptr_dtor(&zretval);
ZVAL_STRINGL(&args[0], (char*)buf, count);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
1, args,
ZVAL_LONG(&args[0], count);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
1, args,
ZVAL_STRINGL(&func_name, USERSTREAM_EOF, sizeof(USERSTREAM_EOF)-1);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
0, NULL, 0, NULL TSRMLS_CC);
ZVAL_STRINGL(&func_name, USERSTREAM_CLOSE, sizeof(USERSTREAM_CLOSE)-1);
call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
0, NULL, 0, NULL TSRMLS_CC);
zval_ptr_dtor(&func_name);
zval_ptr_dtor(&us->object);
+ ZVAL_UNDEF(&us->object);
efree(us);
ZVAL_STRINGL(&func_name, USERSTREAM_FLUSH, sizeof(USERSTREAM_FLUSH)-1);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
0, NULL, 0, NULL TSRMLS_CC);
ZVAL_LONG(&args[1], whence);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
2, args,
ZVAL_STRINGL(&func_name, USERSTREAM_TELL, sizeof(USERSTREAM_TELL)-1);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
0, NULL, 0, NULL TSRMLS_CC);
ZVAL_STRINGL(&func_name, USERSTREAM_STAT, sizeof(USERSTREAM_STAT)-1);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
0, NULL, 0, NULL TSRMLS_CC);
switch (option) {
case PHP_STREAM_OPTION_CHECK_LIVENESS:
ZVAL_STRINGL(&func_name, USERSTREAM_EOF, sizeof(USERSTREAM_EOF)-1);
- call_result = call_user_function_ex(NULL, &us->object, &func_name, &retval, 0, NULL, 0, NULL TSRMLS_CC);
+ call_result = call_user_function_ex(NULL, ZVAL_IS_UNDEF(&us->object)? NULL : &us->object, &func_name, &retval, 0, NULL, 0, NULL TSRMLS_CC);
if (call_result == SUCCESS && Z_TYPE(retval) == IS_BOOL) {
ret = zval_is_true(&retval) ? PHP_STREAM_OPTION_RETURN_ERR : PHP_STREAM_OPTION_RETURN_OK;
} else {
ZVAL_STRINGL(&func_name, USERSTREAM_LOCK, sizeof(USERSTREAM_LOCK)-1);
call_result = call_user_function_ex(NULL,
- &us->object,
- &func_name,
- &retval,
- 1, args, 0, NULL TSRMLS_CC);
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
+ &func_name,
+ &retval,
+ 1, args, 0, NULL TSRMLS_CC);
if (call_result == SUCCESS && Z_TYPE(retval) == IS_BOOL) {
ret = !Z_LVAL(retval);
switch (value) {
case PHP_STREAM_TRUNCATE_SUPPORTED:
- if (zend_is_callable_ex(&func_name, &us->object, IS_CALLABLE_CHECK_SILENT,
- NULL, NULL, NULL TSRMLS_CC))
+ if (zend_is_callable_ex(&func_name,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
+ IS_CALLABLE_CHECK_SILENT, NULL, NULL, NULL TSRMLS_CC))
ret = PHP_STREAM_OPTION_RETURN_OK;
else
ret = PHP_STREAM_OPTION_RETURN_ERR;
if (new_size >= 0 && new_size <= (ptrdiff_t)LONG_MAX) {
ZVAL_LONG(&args[0], (long)new_size);
call_result = call_user_function_ex(NULL,
- &us->object,
- &func_name,
- &retval,
- 1, args, 0, NULL TSRMLS_CC);
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
+ &func_name,
+ &retval,
+ 1, args, 0, NULL TSRMLS_CC);
if (call_result == SUCCESS && Z_TYPE(retval) != IS_UNDEF) {
if (Z_TYPE(retval) == IS_BOOL) {
ret = Z_LVAL(retval) ? PHP_STREAM_OPTION_RETURN_OK :
}
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
3, args, 0, NULL TSRMLS_CC);
ZVAL_STRINGL(&func_name, USERSTREAM_DIR_READ, sizeof(USERSTREAM_DIR_READ)-1);
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
0, NULL,
ZVAL_STRINGL(&func_name, USERSTREAM_DIR_CLOSE, sizeof(USERSTREAM_DIR_CLOSE)-1);
call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
0, NULL, 0, NULL TSRMLS_CC);
zval_ptr_dtor(&retval);
zval_ptr_dtor(&func_name);
zval_ptr_dtor(&us->object);
+ ZVAL_UNDEF(&us->object);
efree(us);
ZVAL_STRINGL(&func_name, USERSTREAM_DIR_REWIND, sizeof(USERSTREAM_DIR_REWIND)-1);
call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
0, NULL, 0, NULL TSRMLS_CC);
}
call_result = call_user_function_ex(NULL,
- &us->object,
+ ZVAL_IS_UNDEF(&us->object)? NULL : &us->object,
&func_name,
&retval,
1, args, 0, NULL TSRMLS_CC);