zval **args[4];
int call_result;
php_stream *stream = NULL;
- zval *zcontext = NULL;
zend_bool old_in_user_include;
/* Try to catch bad usage without preventing flexibility */
}
if (context) {
- MAKE_STD_ZVAL(zcontext);
- php_stream_context_to_zval(context, zcontext);
- add_property_zval(us->object, "context", zcontext);
- /* The object property should be the only reference,
- 'get rid' of our local reference. */
- zval_ptr_dtor(&zcontext);
+ add_property_resource(us->object, "context", context->rsrc_id);
+ zend_list_addref(context->rsrc_id);
} else {
add_property_null(us->object, "context");
}
{
struct php_user_stream_wrapper *uwrap = (struct php_user_stream_wrapper*)wrapper->abstract;
php_userstream_data_t *us;
- zval *zfilename, *zoptions, *zretval = NULL, *zfuncname, *zcontext;
+ zval *zfilename, *zoptions, *zretval = NULL, *zfuncname;
zval **args[2];
int call_result;
php_stream *stream = NULL;
Z_SET_ISREF_P(us->object);
if (context) {
- MAKE_STD_ZVAL(zcontext);
- php_stream_context_to_zval(context, zcontext);
- add_property_zval(us->object, "context", zcontext);
- /* The object property should be the only reference,
- 'get rid' of our local reference. */
- zval_ptr_dtor(&zcontext);
+ add_property_resource(us->object, "context", context->rsrc_id);
+ zend_list_addref(context->rsrc_id);
} else {
add_property_null(us->object, "context");
}
static int user_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC)
{
struct php_user_stream_wrapper *uwrap = (struct php_user_stream_wrapper*)wrapper->abstract;
- zval *zfilename, *zfuncname, *zretval, *zcontext;
+ zval *zfilename, *zfuncname, *zretval;
zval **args[1];
int call_result;
zval *object;
Z_SET_ISREF_P(object);
if (context) {
- MAKE_STD_ZVAL(zcontext);
- php_stream_context_to_zval(context, zcontext);
- add_property_zval(object, "context", zcontext);
- /* The object property should be the only reference,
- 'get rid' of our local reference. */
- zval_ptr_dtor(&zcontext);
+ add_property_resource(object, "context", context->rsrc_id);
+ zend_list_addref(context->rsrc_id);
} else {
add_property_null(object, "context");
}
static int user_wrapper_rename(php_stream_wrapper *wrapper, char *url_from, char *url_to, int options, php_stream_context *context TSRMLS_DC)
{
struct php_user_stream_wrapper *uwrap = (struct php_user_stream_wrapper*)wrapper->abstract;
- zval *zold_name, *znew_name, *zfuncname, *zretval, *zcontext;
+ zval *zold_name, *znew_name, *zfuncname, *zretval;
zval **args[2];
int call_result;
zval *object;
Z_SET_ISREF_P(object);
if (context) {
- MAKE_STD_ZVAL(zcontext);
- php_stream_context_to_zval(context, zcontext);
- add_property_zval(object, "context", zcontext);
- /* The object property should be the only reference,
- 'get rid' of our local reference. */
- zval_ptr_dtor(&zcontext);
+ add_property_resource(object, "context", context->rsrc_id);
+ zend_list_addref(context->rsrc_id);
} else {
add_property_null(object, "context");
}
static int user_wrapper_mkdir(php_stream_wrapper *wrapper, char *url, int mode, int options, php_stream_context *context TSRMLS_DC)
{
struct php_user_stream_wrapper *uwrap = (struct php_user_stream_wrapper*)wrapper->abstract;
- zval *zfilename, *zmode, *zoptions, *zfuncname, *zretval, *zcontext;
+ zval *zfilename, *zmode, *zoptions, *zfuncname, *zretval;
zval **args[3];
int call_result;
zval *object;
Z_SET_ISREF_P(object);
if (context) {
- MAKE_STD_ZVAL(zcontext);
- php_stream_context_to_zval(context, zcontext);
- add_property_zval(object, "context", zcontext);
- /* The object property should be the only reference,
- 'get rid' of our local reference. */
- zval_ptr_dtor(&zcontext);
+ add_property_resource(object, "context", context->rsrc_id);
+ zend_list_addref(context->rsrc_id);
} else {
add_property_null(object, "context");
}
static int user_wrapper_rmdir(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC)
{
struct php_user_stream_wrapper *uwrap = (struct php_user_stream_wrapper*)wrapper->abstract;
- zval *zfilename, *zoptions, *zfuncname, *zretval, *zcontext;
+ zval *zfilename, *zoptions, *zfuncname, *zretval;
zval **args[3];
int call_result;
zval *object;
Z_SET_ISREF_P(object);
if (context) {
- MAKE_STD_ZVAL(zcontext);
- php_stream_context_to_zval(context, zcontext);
- add_property_zval(object, "context", zcontext);
- /* The object property should be the only reference,
- 'get rid' of our local reference. */
- zval_ptr_dtor(&zcontext);
+ add_property_resource(object, "context", context->rsrc_id);
+ zend_list_addref(context->rsrc_id);
} else {
add_property_null(object, "context");
}
static int user_wrapper_stat_url(php_stream_wrapper *wrapper, char *url, int flags, php_stream_statbuf *ssb, php_stream_context *context TSRMLS_DC)
{
struct php_user_stream_wrapper *uwrap = (struct php_user_stream_wrapper*)wrapper->abstract;
- zval *zfilename, *zfuncname, *zretval, *zflags, *zcontext;
+ zval *zfilename, *zfuncname, *zretval, *zflags;
zval **args[2];
int call_result;
zval *object;
Z_SET_ISREF_P(object);
if (context) {
- MAKE_STD_ZVAL(zcontext);
- php_stream_context_to_zval(context, zcontext);
- add_property_zval(object, "context", zcontext);
- /* The object property should be the only reference,
- 'get rid' of our local reference. */
- zval_ptr_dtor(&zcontext);
+ add_property_resource(object, "context", context->rsrc_id);
+ zend_list_addref(context->rsrc_id);
} else {
add_property_null(object, "context");
}