summaryrefslogtreecommitdiff
path: root/ext/standard/streamsfuncs.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/streamsfuncs.c')
-rw-r--r--ext/standard/streamsfuncs.c55
1 files changed, 21 insertions, 34 deletions
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index 442091ad46..8f67b8b3fc 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -107,8 +107,8 @@ PHP_FUNCTION(stream_socket_client)
ZEND_PARSE_PARAMETERS_START(1, 6)
Z_PARAM_STR(host)
Z_PARAM_OPTIONAL
- Z_PARAM_ZVAL_DEREF(zerrno)
- Z_PARAM_ZVAL_DEREF(zerrstr)
+ Z_PARAM_ZVAL(zerrno)
+ Z_PARAM_ZVAL(zerrstr)
Z_PARAM_DOUBLE(timeout)
Z_PARAM_LONG(flags)
Z_PARAM_RESOURCE(zcontext)
@@ -129,13 +129,11 @@ PHP_FUNCTION(stream_socket_client)
tv.tv_sec = conv / 1000000;
tv.tv_usec = conv % 1000000;
#endif
- if (zerrno) {
- zval_ptr_dtor(zerrno);
- ZVAL_LONG(zerrno, 0);
+ if (zerrno) {
+ ZEND_TRY_ASSIGN_LONG(zerrno, 0);
}
if (zerrstr) {
- zval_ptr_dtor(zerrstr);
- ZVAL_EMPTY_STRING(zerrstr);
+ ZEND_TRY_ASSIGN_EMPTY_STRING(zerrstr);
}
stream = php_stream_xport_create(ZSTR_VAL(host), ZSTR_LEN(host), REPORT_ERRORS,
@@ -156,14 +154,12 @@ PHP_FUNCTION(stream_socket_client)
efree(hashkey);
}
- if (stream == NULL) {
+ if (stream == NULL) {
if (zerrno) {
- zval_ptr_dtor(zerrno);
- ZVAL_LONG(zerrno, err);
+ ZEND_TRY_ASSIGN_LONG(zerrno, err);
}
if (zerrstr && errstr) {
- zval_ptr_dtor(zerrstr);
- ZVAL_STR(zerrstr, errstr);
+ ZEND_TRY_ASSIGN_STR(zerrstr, errstr);
} else if (errstr) {
zend_string_release_ex(errstr, 0);
}
@@ -197,8 +193,8 @@ PHP_FUNCTION(stream_socket_server)
ZEND_PARSE_PARAMETERS_START(1, 5)
Z_PARAM_STRING(host, host_len)
Z_PARAM_OPTIONAL
- Z_PARAM_ZVAL_DEREF(zerrno)
- Z_PARAM_ZVAL_DEREF(zerrstr)
+ Z_PARAM_ZVAL(zerrno)
+ Z_PARAM_ZVAL(zerrstr)
Z_PARAM_LONG(flags)
Z_PARAM_RESOURCE(zcontext)
ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
@@ -209,13 +205,11 @@ PHP_FUNCTION(stream_socket_server)
GC_ADDREF(context->res);
}
- if (zerrno) {
- zval_ptr_dtor(zerrno);
- ZVAL_LONG(zerrno, 0);
+ if (zerrno) {
+ ZEND_TRY_ASSIGN_LONG(zerrno, 0);
}
if (zerrstr) {
- zval_ptr_dtor(zerrstr);
- ZVAL_EMPTY_STRING(zerrstr);
+ ZEND_TRY_ASSIGN_EMPTY_STRING(zerrstr);
}
stream = php_stream_xport_create(host, host_len, REPORT_ERRORS,
@@ -226,14 +220,12 @@ PHP_FUNCTION(stream_socket_server)
php_error_docref(NULL, E_WARNING, "unable to connect to %s (%s)", host, errstr == NULL ? "Unknown error" : ZSTR_VAL(errstr));
}
- if (stream == NULL) {
+ if (stream == NULL) {
if (zerrno) {
- zval_ptr_dtor(zerrno);
- ZVAL_LONG(zerrno, err);
+ ZEND_TRY_ASSIGN_LONG(zerrno, err);
}
if (zerrstr && errstr) {
- zval_ptr_dtor(zerrstr);
- ZVAL_STR(zerrstr, errstr);
+ ZEND_TRY_ASSIGN_STR(zerrstr, errstr);
} else if (errstr) {
zend_string_release_ex(errstr, 0);
}
@@ -265,7 +257,7 @@ PHP_FUNCTION(stream_socket_accept)
Z_PARAM_RESOURCE(zstream)
Z_PARAM_OPTIONAL
Z_PARAM_DOUBLE(timeout)
- Z_PARAM_ZVAL_DEREF(zpeername)
+ Z_PARAM_ZVAL(zpeername)
ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
php_stream_from_zval(stream, zstream);
@@ -279,10 +271,6 @@ PHP_FUNCTION(stream_socket_accept)
tv.tv_sec = conv / 1000000;
tv.tv_usec = conv % 1000000;
#endif
- if (zpeername) {
- zval_ptr_dtor(zpeername);
- ZVAL_NULL(zpeername);
- }
if (0 == php_stream_xport_accept(stream, &clistream,
zpeername ? &peername : NULL,
@@ -291,7 +279,7 @@ PHP_FUNCTION(stream_socket_accept)
) && clistream) {
if (peername) {
- ZVAL_STR(zpeername, peername);
+ ZEND_TRY_ASSIGN_STR(zpeername, peername);
}
php_stream_to_zval(clistream, return_value);
} else {
@@ -387,14 +375,13 @@ PHP_FUNCTION(stream_socket_recvfrom)
Z_PARAM_LONG(to_read)
Z_PARAM_OPTIONAL
Z_PARAM_LONG(flags)
- Z_PARAM_ZVAL_DEREF(zremote)
+ Z_PARAM_ZVAL(zremote)
ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
php_stream_from_zval(stream, zstream);
if (zremote) {
- zval_ptr_dtor(zremote);
- ZVAL_NULL(zremote);
+ ZEND_TRY_ASSIGN_NULL(zremote);
}
if (to_read <= 0) {
@@ -410,7 +397,7 @@ PHP_FUNCTION(stream_socket_recvfrom)
if (recvd >= 0) {
if (zremote && remote_addr) {
- ZVAL_STR(zremote, remote_addr);
+ ZEND_TRY_ASSIGN_STR(zremote, remote_addr);
}
ZSTR_VAL(read_buf)[recvd] = '\0';
ZSTR_LEN(read_buf) = recvd;