summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-04-15 21:56:30 +0400
committerDmitry Stogov <dmitry@zend.com>2014-04-15 21:56:30 +0400
commitf9b26bc39a9ea9b1380628eeb0e6dad3c93cfcb0 (patch)
treeda606ba7a4dd4db0119c0f25af9c201eff56eb21 /ext
parent61e9b0d265364f9b99a1fdc69a9cafd4d3fc4721 (diff)
downloadphp-git-f9b26bc39a9ea9b1380628eeb0e6dad3c93cfcb0.tar.gz
Cleanup (2-nd round)
Diffstat (limited to 'ext')
-rw-r--r--ext/date/php_date.c10
-rw-r--r--ext/mbstring/mbstring.c44
-rw-r--r--ext/mysql/php_mysql.c5
-rw-r--r--ext/opcache/Optimizer/compact_literals.c1
-rw-r--r--ext/opcache/Optimizer/zend_optimizer_internal.h2
-rw-r--r--ext/opcache/ZendAccelerator.c13
-rw-r--r--ext/opcache/zend_accelerator_util_funcs.c9
-rw-r--r--ext/opcache/zend_persist.c9
-rw-r--r--ext/pcre/php_pcre.c1
-rw-r--r--ext/reflection/php_reflection.c11
-rw-r--r--ext/standard/basic_functions.c2
-rw-r--r--ext/standard/browscap.c7
-rw-r--r--ext/standard/file.c6
-rw-r--r--ext/standard/fsock.c2
-rw-r--r--ext/standard/html.c6
-rw-r--r--ext/standard/iptc.c3
-rw-r--r--ext/standard/quot_print.c3
-rw-r--r--ext/standard/scanf.c2
-rw-r--r--ext/standard/streamsfuncs.c18
-rw-r--r--ext/standard/string.c30
-rw-r--r--ext/standard/type.c2
-rw-r--r--ext/standard/uniqid.c2
-rw-r--r--ext/standard/var.c4
23 files changed, 78 insertions, 114 deletions
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index 6bc2db7a71..8009897b9a 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -2212,7 +2212,7 @@ static HashTable *date_object_get_properties(zval *object TSRMLS_DC) /* {{{ */
abs(utc_offset / 60),
abs((utc_offset % 60)));
-//??? ZVAL_STRING(zv, tmpstr, 0);
+ // TODO: avoid reallocation ???
ZVAL_STRING(&zv, tmpstr);
efree(tmpstr);
}
@@ -2306,7 +2306,7 @@ static HashTable *date_object_get_properties_timezone(zval *object TSRMLS_DC) /*
abs(tzobj->tzi.utc_offset / 60),
abs((tzobj->tzi.utc_offset % 60)));
-//??? ZVAL_STRING(zv, tmpstr, 0);
+ // TODO: avoid reallocation ???
ZVAL_STRING(&zv, tmpstr);
efree(tmpstr);
}
@@ -3744,7 +3744,7 @@ PHP_FUNCTION(timezone_name_get)
abs(utc_offset / 60),
abs((utc_offset % 60)));
-//??? RETURN_STRING(tmpstr, 0);
+ // TODO: avoid reallocation ???
RETVAL_STRING(tmpstr);
efree(tmpstr);
return;
@@ -4003,8 +4003,6 @@ zval *date_interval_read_property(zval *object, zval *member, int type, const ze
return retval;
} while(0);
-//??? ALLOC_INIT_ZVAL(retval);
-//??? Z_SET_REFCOUNT_P(retval, 0);
retval = rv;
if (value != -99999) {
@@ -4622,7 +4620,7 @@ static void php_do_date_sunrise_sunset(INTERNAL_FUNCTION_PARAMETERS, int calc_su
switch (retformat) {
case SUNFUNCS_RET_STRING:
spprintf(&retstr, 0, "%02d:%02d", (int) N, (int) (60 * (N - (int) N)));
-//??? RETURN_STRINGL(retstr, 5, 0);
+ // TODO: avoid reallocation ???
RETVAL_STRINGL(retstr, 5);
efree(retstr);
return;
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index b7f97bb953..50827b26f3 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -2172,7 +2172,7 @@ PHP_FUNCTION(mb_output_handler)
}
/* get the converter output, and return it */
mbfl_buffer_converter_result(MBSTRG(outconv), &result);
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)result.val, result.len); /* the string is already strdup()'ed */
efree(result.val);
@@ -2476,7 +2476,7 @@ PHP_FUNCTION(mb_strstr)
if (part) {
ret = mbfl_substr(&haystack, &result, 0, n);
if (ret != NULL) {
- //???
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
@@ -2486,7 +2486,7 @@ PHP_FUNCTION(mb_strstr)
len = (mblen - n);
ret = mbfl_substr(&haystack, &result, n, len);
if (ret != NULL) {
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
@@ -2540,7 +2540,7 @@ PHP_FUNCTION(mb_strrchr)
if (part) {
ret = mbfl_substr(&haystack, &result, 0, n);
if (ret != NULL) {
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
@@ -2550,7 +2550,7 @@ PHP_FUNCTION(mb_strrchr)
len = (mblen - n);
ret = mbfl_substr(&haystack, &result, n, len);
if (ret != NULL) {
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
@@ -2606,7 +2606,7 @@ PHP_FUNCTION(mb_stristr)
if (part) {
ret = mbfl_substr(&haystack, &result, 0, n);
if (ret != NULL) {
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
@@ -2616,7 +2616,7 @@ PHP_FUNCTION(mb_stristr)
len = (mblen - n);
ret = mbfl_substr(&haystack, &result, n, len);
if (ret != NULL) {
- //????
+ // TODO: avoid reallocaton ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
@@ -2663,7 +2663,7 @@ PHP_FUNCTION(mb_strrichr)
if (part) {
ret = mbfl_substr(&haystack, &result, 0, n);
if (ret != NULL) {
- //???
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
@@ -2673,7 +2673,7 @@ PHP_FUNCTION(mb_strrichr)
len = (mblen - n);
ret = mbfl_substr(&haystack, &result, n, len);
if (ret != NULL) {
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
@@ -2798,7 +2798,7 @@ PHP_FUNCTION(mb_substr)
RETURN_FALSE;
}
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
efree(ret->val);
}
@@ -2867,7 +2867,7 @@ PHP_FUNCTION(mb_strcut)
RETURN_FALSE;
}
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
efree(ret->val);
}
@@ -2961,7 +2961,7 @@ PHP_FUNCTION(mb_strimwidth)
if (ret == NULL) {
RETURN_FALSE;
}
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
efree(ret->val);
}
@@ -3117,8 +3117,8 @@ PHP_FUNCTION(mb_convert_encoding)
/* new encoding */
ret = php_mb_convert_encoding(arg_str, str_len, arg_new, _from_encodings, &size TSRMLS_CC);
if (ret != NULL) {
+ // TODO: avoid reallocation ???
RETVAL_STRINGL(ret, size); /* the string is already strdup()'ed */
- //???
efree(ret);
} else {
RETVAL_FALSE;
@@ -3150,8 +3150,8 @@ PHP_FUNCTION(mb_convert_case)
newstr = php_unicode_convert_case(case_mode, str, (size_t) str_len, &ret_len, from_encoding TSRMLS_CC);
if (newstr) {
+ // TODO: avoid reallocation ???
RETVAL_STRINGL(newstr, ret_len);
- //???
efree(newstr);
}
}
@@ -3175,7 +3175,7 @@ PHP_FUNCTION(mb_strtoupper)
newstr = php_unicode_convert_case(PHP_UNICODE_CASE_UPPER, str, (size_t) str_len, &ret_len, from_encoding TSRMLS_CC);
if (newstr) {
- //???
+ // TODO: avoid reallocation ???
RETVAL_STRINGL(newstr, ret_len);
efree(newstr);
return;
@@ -3202,7 +3202,7 @@ PHP_FUNCTION(mb_strtolower)
newstr = php_unicode_convert_case(PHP_UNICODE_CASE_LOWER, str, (size_t) str_len, &ret_len, from_encoding TSRMLS_CC);
if (newstr) {
- //???
+ // TODO: avoid reallocation ???
RETVAL_STRINGL(newstr, ret_len);
efree(newstr);
return;
@@ -3383,7 +3383,7 @@ PHP_FUNCTION(mb_encode_mimeheader)
mbfl_string_init(&result);
ret = mbfl_mime_header_encode(&string, &result, charset, transenc, linefeed, indent);
if (ret != NULL) {
- //?????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
efree(ret->val);
} else {
@@ -3409,7 +3409,7 @@ PHP_FUNCTION(mb_decode_mimeheader)
mbfl_string_init(&result);
ret = mbfl_mime_header_decode(&string, &result, MBSTRG(current_internal_encoding)->no_encoding);
if (ret != NULL) {
- //????
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
efree(ret->val);
} else {
@@ -3514,7 +3514,7 @@ PHP_FUNCTION(mb_convert_kana)
ret = mbfl_ja_jp_hantozen(&string, &result, opt);
if (ret != NULL) {
- //???
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
efree(ret->val);
} else {
@@ -3716,7 +3716,7 @@ detect_end:
ret = mbfl_buffer_converter_feed_result(convd, &string, &result);
if (ret != NULL) {
zval_ptr_dtor(hash_entry_ptr);
- //???
+ // TODO: avoid reallocation ???
ZVAL_STRINGL(hash_entry_ptr, (char *)ret->val, ret->len);
efree(ret->val);
}
@@ -3729,7 +3729,7 @@ detect_end:
ret = mbfl_buffer_converter_feed_result(convd, &string, &result);
if (ret != NULL) {
zval_ptr_dtor(var);
- //????
+ // TODO: avoid reallocation ???
ZVAL_STRINGL(var, (char *)ret->val, ret->len);
efree(ret->val);
}
@@ -3820,7 +3820,7 @@ php_mb_numericentity_exec(INTERNAL_FUNCTION_PARAMETERS, int type)
ret = mbfl_html_numeric_entity(&string, &result, convmap, mapsize, type);
if (ret != NULL) {
- //???
+ // TODO: avoid reallocation ???
RETVAL_STRINGL((char *)ret->val, ret->len);
efree(ret->val);
} else {
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c
index b6d43687e0..1731c8a538 100644
--- a/ext/mysql/php_mysql.c
+++ b/ext/mysql/php_mysql.c
@@ -1335,8 +1335,9 @@ PHP_FUNCTION(mysql_stat)
RETURN_STRING(stat);
#else
if (mysqlnd_stat(mysql->conn, &stat, &stat_len) == PASS) {
- //???? memleak
- RETURN_STRINGL(stat, stat_len);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL(stat, stat_len);
+ efree(stat);
#endif
} else {
RETURN_FALSE;
diff --git a/ext/opcache/Optimizer/compact_literals.c b/ext/opcache/Optimizer/compact_literals.c
index deaf09547d..1905e66136 100644
--- a/ext/opcache/Optimizer/compact_literals.c
+++ b/ext/opcache/Optimizer/compact_literals.c
@@ -281,7 +281,6 @@ static void optimizer_compact_literals(zend_op_array *op_array TSRMLS_DC)
/* Merge equal constants */
j = 0; cache_slots = 0;
zend_hash_init(&hash, 16, NULL, NULL, 0);
-//??? hash.flags |= HASH_FLAG_BIG_DATA;
map = (int*)ecalloc(op_array->last_literal, sizeof(int));
for (i = 0; i < op_array->last_literal; i++) {
if (!info[i].flags) {
diff --git a/ext/opcache/Optimizer/zend_optimizer_internal.h b/ext/opcache/Optimizer/zend_optimizer_internal.h
index c0e298b94f..049036c1f4 100644
--- a/ext/opcache/Optimizer/zend_optimizer_internal.h
+++ b/ext/opcache/Optimizer/zend_optimizer_internal.h
@@ -24,7 +24,7 @@
#include "ZendAccelerator.h"
-#if 1 //???ZEND_EXTENSION_API_NO > PHP_5_6_X_API_NO
+#if 1 // TODO: remove support for old PHP versions ???
# define VAR_NUM(v) EX_VAR_TO_NUM(v)
# define NUM_VAR(v) ((zend_uint)(zend_uintptr_t)EX_VAR_NUM_2(0, v))
#elif ZEND_EXTENSION_API_NO > PHP_5_4_X_API_NO
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index cdf48f2bb2..01dfd5c2a9 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -329,9 +329,7 @@ zend_string *accel_new_interned_string(zend_string *str TSRMLS_DC)
p = ZCSG(interned_strings).arData + idx;
if ((p->h == h) && (p->key->len == str->len)) {
if (!memcmp(p->key->val, str->val, str->len)) {
-//??? if (free_src) {
- STR_RELEASE(str);
-//??? }
+ STR_RELEASE(str);
return p->key;
}
}
@@ -366,11 +364,7 @@ zend_string *accel_new_interned_string(zend_string *str TSRMLS_DC)
ZVAL_STR(&p->val, p->key);
Z_NEXT(p->val) = ZCSG(interned_strings).arHash[nIndex];
ZCSG(interned_strings).arHash[nIndex] = idx;
-
-//??? if (free_src) {
- STR_RELEASE(str);
-//??? }
-
+ STR_RELEASE(str);
return p->key;
#else
return str;
@@ -2231,9 +2225,6 @@ static void accel_fast_zval_dtor(zval *zvalue)
{
TSRMLS_FETCH();
-#if ZEND_EXTENSION_API_NO >= PHP_5_3_X_API_NO
-//??? GC_REMOVE_FROM_BUFFER(Z_OBJ_P(zvalue));
-#endif
OBJ_RELEASE(Z_OBJ_P(zvalue));
}
break;
diff --git a/ext/opcache/zend_accelerator_util_funcs.c b/ext/opcache/zend_accelerator_util_funcs.c
index 61d662a4f8..0d1a1907cd 100644
--- a/ext/opcache/zend_accelerator_util_funcs.c
+++ b/ext/opcache/zend_accelerator_util_funcs.c
@@ -354,9 +354,6 @@ static void zend_hash_clone_zval(HashTable *ht, HashTable *source, int bind)
ht->nNumOfElements = source->nNumOfElements;
ht->nNextFreeElement = source->nNextFreeElement;
ht->pDestructor = ZVAL_PTR_DTOR;
-#if ZEND_DEBUG
-//??? ht->inconsistent = 0;
-#endif
ht->flags = HASH_FLAG_APPLY_PROTECTION;
ht->arData = NULL;
ht->arHash = NULL;
@@ -430,9 +427,6 @@ static void zend_hash_clone_methods(HashTable *ht, HashTable *source, zend_class
ht->nNumOfElements = source->nNumOfElements;
ht->nNextFreeElement = source->nNextFreeElement;
ht->pDestructor = ZEND_FUNCTION_DTOR;
-#if ZEND_DEBUG
-//??? ht->inconsistent = 0;
-#endif
ht->flags = HASH_FLAG_APPLY_PROTECTION;
ht->nInternalPointer = source->nNumOfElements ? 0 : INVALID_IDX;
ht->nApplyCount = 0;
@@ -531,9 +525,6 @@ static void zend_hash_clone_prop_info(HashTable *ht, HashTable *source, zend_cla
ht->nNumOfElements = source->nNumOfElements;
ht->nNextFreeElement = source->nNextFreeElement;
ht->pDestructor = zend_destroy_property_info;
-#if ZEND_DEBUG
-//??? ht->inconsistent = 0;
-#endif
ht->flags = HASH_FLAG_APPLY_PROTECTION;
ht->nInternalPointer = source->nNumOfElements ? 0 : INVALID_IDX;
ht->nApplyCount = 0;
diff --git a/ext/opcache/zend_persist.c b/ext/opcache/zend_persist.c
index 78cb5abc8a..da9ec7dd87 100644
--- a/ext/opcache/zend_persist.c
+++ b/ext/opcache/zend_persist.c
@@ -170,12 +170,6 @@ static void zend_persist_zval(zval *z TSRMLS_DC)
}
}
-static void zend_protect_zval(zval *z TSRMLS_DC)
-{
-//??? PZ_SET_ISREF_P(z);
-//??? PZ_SET_REFCOUNT_P(z, 2);
-}
-
static void zend_persist_op_array_ex(zend_op_array *op_array, zend_persistent_script* main_persistent_script TSRMLS_DC)
{
zend_op *persist_ptr;
@@ -233,7 +227,6 @@ static void zend_persist_op_array_ex(zend_op_array *op_array, zend_persistent_sc
op_array->literals = p;
while (p < end) {
zend_persist_zval(&p->constant TSRMLS_CC);
- zend_protect_zval(&p->constant TSRMLS_CC);
p++;
}
efree(orig_literals);
@@ -255,7 +248,6 @@ static void zend_persist_op_array_ex(zend_op_array *op_array, zend_persistent_sc
opline->op1.zv = (zval*)((char*)opline->op1.zv + ((char*)op_array->literals - (char*)orig_literals));
#else
zend_persist_zval(&opline->op1.u.constant TSRMLS_CC);
- zend_protect_zval(&opline->op1.u.constant TSRMLS_CC);
#endif
}
if (ZEND_OP2_TYPE(opline) == IS_CONST) {
@@ -263,7 +255,6 @@ static void zend_persist_op_array_ex(zend_op_array *op_array, zend_persistent_sc
opline->op2.zv = (zval*)((char*)opline->op2.zv + ((char*)op_array->literals - (char*)orig_literals));
#else
zend_persist_zval(&opline->op2.u.constant TSRMLS_CC);
- zend_protect_zval(&opline->op2.u.constant TSRMLS_CC);
#endif
}
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index bd76b556af..54f7667d0f 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -1243,7 +1243,6 @@ static zend_string *php_replace_in_subject(zval *regex, zval *replace, zval *sub
}
/* FIXME: This might need to be changed to STR_EMPTY_ALLOC(). Check if this zval could be dtor()'ed somehow */
-//??? ZVAL_STRINGL(&empty_replace, "", 0, 0);
ZVAL_EMPTY_STRING(&empty_replace);
/* If regex is an array */
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index 6dc4ef2edf..0b8027dd85 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -732,7 +732,6 @@ static void _parameter_string(string *str, zend_function *fptr, struct _zend_arg
int use_copy;
string_write(str, " = ", sizeof(" = ")-1);
ZVAL_DUP(&zv, precv->op2.zv);
-//??? INIT_PZVAL(zv);
zval_update_constant_ex(&zv, (void*)1, fptr->common.scope TSRMLS_CC);
if (Z_TYPE(zv) == IS_BOOL) {
if (Z_LVAL(zv)) {
@@ -1378,8 +1377,6 @@ static void _reflection_export(INTERNAL_FUNCTION_PARAMETERS, zend_class_entry *c
ZVAL_COPY_VALUE(&params[1], argument2_ptr);
}
-//??? INIT_PZVAL(&output);
-
/* Create object */
if (object_and_properties_init(&reflector, ce_ptr, NULL) == FAILURE) {
_DO_THROW("Could not create reflector");
@@ -2585,11 +2582,11 @@ ZEND_METHOD(reflection_parameter, getDefaultValue)
}
ZVAL_COPY_VALUE(return_value, precv->op2.zv);
-//??? INIT_PZVAL(return_value);
- if (!Z_CONSTANT_P(return_value)) {
+ if (Z_CONSTANT_P(return_value)) {
+ zval_update_constant_ex(return_value, (void*)0, param->fptr->common.scope TSRMLS_CC);
+ } else {
zval_copy_ctor(return_value);
}
- zval_update_constant_ex(return_value, (void*)0, param->fptr->common.scope TSRMLS_CC);
}
/* }}} */
@@ -3377,7 +3374,6 @@ static void add_class_vars(zend_class_entry *ce, int statics, zval *return_value
/* copy: enforce read only access */
ZVAL_DUP(&prop_copy, prop);
-//??? INIT_PZVAL(prop_copy);
/* this is necessary to make it able to work with default array
* properties, returned to user */
@@ -4956,7 +4952,6 @@ ZEND_METHOD(reflection_property, getValue)
/* Bails out */
}
ZVAL_DUP(return_value, &CE_STATIC_MEMBERS(intern->ce)[ref->prop.offset]);
-//??? INIT_PZVAL(return_value);
} else {
const char *class_name, *prop_name;
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 6632e99328..0dc9874f4b 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -4030,7 +4030,7 @@ PHP_FUNCTION(getenv)
/* SAPI method returns an emalloc()'d string */
ptr = sapi_getenv(str, str_len TSRMLS_CC);
if (ptr) {
-//??? RETURN_STRING(ptr, 0);
+ // TODO: avoid realocation ???
RETVAL_STRING(ptr);
efree(ptr);
return;
diff --git a/ext/standard/browscap.c b/ext/standard/browscap.c
index 3b7b994ab0..08a01d5dff 100644
--- a/ext/standard/browscap.c
+++ b/ext/standard/browscap.c
@@ -84,8 +84,7 @@ static void convert_browscap_pattern(zval *pattern, int persistent) /* {{{ */
char *lc_pattern;
// TODO: overflow check???
-//??? t = (char *) safe_pemalloc(Z_STRLEN_P(pattern), 2, 5, persistent);
- res = STR_ALLOC(Z_STRLEN_P(pattern) * 2 + 5, persistent);
+ res = STR_SAFE_ALLOC(Z_STRLEN_P(pattern), 2, 4, persistent);
t = res->val;
lc_pattern = zend_str_tolower_dup(Z_STRVAL_P(pattern), Z_STRLEN_P(pattern));
@@ -436,8 +435,8 @@ static int browser_reg_compare(zval *browser TSRMLS_DC, int num_args, va_list ar
static void browscap_zval_copy_ctor(zval *p) /* {{{ */
{
zval_copy_ctor(p);
-//??? INIT_PZVAL(p);
-} /* }}} */
+}
+/* }}} */
/* {{{ proto mixed get_browser([string browser_name [, bool return_array]])
Get information about the capabilities of a browser. If browser_name is omitted or null, HTTP_USER_AGENT is used. Returns an object by default; if return_array is true, returns an array. */
diff --git a/ext/standard/file.c b/ext/standard/file.c
index b802e2c4e7..536cdfb269 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -822,10 +822,8 @@ PHP_FUNCTION(tempnam)
if ((fd = php_open_temporary_fd_ex(dir, p->val, &opened_path, 1 TSRMLS_CC)) >= 0) {
close(fd);
-//??? RETVAL_STRING(opened_path, 0);
+ // TODO: avoid reallocation ???
RETVAL_STRING(opened_path);
- //??? temporary fixed the memory leak, I've tried to make opened_path a zend_string
- //but too too many places need to be changed.... let's keep it simple for now
efree(opened_path);
}
STR_RELEASE(p);
@@ -1116,7 +1114,7 @@ PHPAPI PHP_FUNCTION(fgetss)
retval_len = php_strip_tags(retval, actual_len, &stream->fgetss_state, allowed_tags, allowed_tags_len);
-//??? RETURN_STRINGL(retval, retval_len, 0);
+ // TODO: avoid reallocation ???
RETVAL_STRINGL(retval, retval_len);
efree(retval);
}
diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c
index 0774893e85..8e164bab38 100644
--- a/ext/standard/fsock.c
+++ b/ext/standard/fsock.c
@@ -100,7 +100,7 @@ static void php_fsockopen_stream(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if (zerrstr && errstr) {
/* no need to dup; we need to efree buf anyway */
zval_dtor(zerrstr);
-//??? ZVAL_STRING(zerrstr, errstr, 0);
+ // TODO: avoid reallocation ???
ZVAL_STRING(zerrstr, errstr);
efree(errstr);
} else if (!zerrstr && errstr) {
diff --git a/ext/standard/html.c b/ext/standard/html.c
index cc772859a5..69f2400c53 100644
--- a/ext/standard/html.c
+++ b/ext/standard/html.c
@@ -1276,8 +1276,7 @@ PHPAPI zend_string *php_escape_html_entities_ex(unsigned char *old, size_t oldle
/* guarantee we have at least 40 bytes to write.
* In HTML5, entities may take up to 33 bytes */
if (len > maxlen - 40) { /* maxlen can never be smaller than 128 */
-//??? replaced = safe_erealloc(replaced, maxlen , 1, 128 + 1);
- replaced = STR_REALLOC(replaced, maxlen + 128, 0);
+ replaced = STR_SAFE_REALLOC(replaced, maxlen, 1, 128, 0);
maxlen += 128;
}
@@ -1409,8 +1408,7 @@ encode_amp:
/* at this point maxlen - len >= 40 */
if (maxlen - len < ent_len + 2 /* & and ; */) {
/* ent_len < oldlen, which is certainly <= SIZE_MAX/2 */
-//??? replaced = safe_erealloc(replaced, maxlen, 1, ent_len + 128 + 1);
- replaced = STR_REALLOC(replaced, maxlen + ent_len + 128, 0);
+ replaced = STR_SAFE_REALLOC(replaced, maxlen, 1, ent_len + 128, 0);
maxlen += ent_len + 128;
}
replaced->val[len++] = '&';
diff --git a/ext/standard/iptc.c b/ext/standard/iptc.c
index fa17c95f3c..2df16daaac 100644
--- a/ext/standard/iptc.c
+++ b/ext/standard/iptc.c
@@ -285,8 +285,9 @@ PHP_FUNCTION(iptcembed)
fclose(fp);
if (spool < 2) {
-//??? RETVAL_STRINGL(spoolbuf, poi - spoolbuf, 0);
+ // TODO: avoid reallocation ???
RETVAL_STRINGL(spoolbuf, poi - spoolbuf);
+ efree(spoolbuf);
} else {
RETURN_TRUE;
}
diff --git a/ext/standard/quot_print.c b/ext/standard/quot_print.c
index 4e6b1f1e2e..aa3d256c3a 100644
--- a/ext/standard/quot_print.c
+++ b/ext/standard/quot_print.c
@@ -152,8 +152,7 @@ PHPAPI zend_string *php_quot_print_encode(const unsigned char *str, size_t lengt
char *hex = "0123456789ABCDEF";
zend_string *ret;
-//??? ret = safe_emalloc(3, length + (((3 * length)/(PHP_QPRINT_MAXL-9)) + 1), 1);
- ret = STR_ALLOC(3 * (length + (((3 * length)/(PHP_QPRINT_MAXL-9)) + 1)), 0);
+ ret = STR_SAFE_ALLOC(3, (length + (((3 * length)/(PHP_QPRINT_MAXL-9)) + 1)), 0, 0);
d = (unsigned char*)ret->val;
while (length--) {
diff --git a/ext/standard/scanf.c b/ext/standard/scanf.c
index 77f781c49b..3eb58e1837 100644
--- a/ext/standard/scanf.c
+++ b/ext/standard/scanf.c
@@ -866,7 +866,7 @@ literal:
current = &args[objIndex++];
zval_dtor(Z_REFVAL_P(current));
ZVAL_STRINGL(Z_REFVAL_P(current), string, end-string);
-// Z_SET_REFCOUNT_P(current, refcount);
+//??? Z_SET_REFCOUNT_P(current, refcount);
//??? Z_SET_ISREF_PP(current);
} else {
add_index_stringl(return_value, objIndex++, string, end-string);
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index 360c436be7..e668b973b4 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -156,7 +156,7 @@ PHP_FUNCTION(stream_socket_client)
if (zerrstr && errstr) {
/* no need to dup; we need to efree buf anyway */
zval_dtor(zerrstr);
-//??? ZVAL_STRING(zerrstr, errstr, 0);
+ // TODO: avoid reallocation ???
ZVAL_STRING(zerrstr, errstr);
efree(errstr);
} else if (errstr) {
@@ -224,8 +224,9 @@ PHP_FUNCTION(stream_socket_server)
if (zerrstr && errstr) {
/* no need to dup; we need to efree buf anyway */
zval_dtor(zerrstr);
-//??? ZVAL_STRING(zerrstr, errstr, 0);
+ // TODO: avoid reallocation ???
ZVAL_STRING(zerrstr, errstr);
+ efree(errstr);
} else if (errstr) {
efree(errstr);
}
@@ -283,8 +284,9 @@ PHP_FUNCTION(stream_socket_accept)
TSRMLS_CC) && clistream) {
if (peername) {
-//??? ZVAL_STRINGL(zpeername, peername, peername_len, 0);
+ // TODO: avoid reallocation ???
ZVAL_STRINGL(zpeername, peername, peername_len);
+ efree(peername);
}
php_stream_to_zval(clistream, return_value);
} else {
@@ -322,8 +324,9 @@ PHP_FUNCTION(stream_socket_get_name)
RETURN_FALSE;
}
-//??? RETURN_STRINGL(name, name_len, 0);
- RETURN_STRINGL(name, name_len);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL(name, name_len);
+ efree(name);
}
/* }}} */
@@ -394,8 +397,9 @@ PHP_FUNCTION(stream_socket_recvfrom)
if (recvd >= 0) {
if (zremote) {
-//??? ZVAL_STRINGL(zremote, remote_addr, remote_addr_len, 0);
+ // TODO: avoid reallocation ???
ZVAL_STRINGL(zremote, remote_addr, remote_addr_len);
+ efree(remote_addr);
}
read_buf->val[recvd] = '\0';
read_buf->len = recvd;
@@ -1537,7 +1541,7 @@ PHP_FUNCTION(stream_resolve_include_path)
resolved_path = zend_resolve_path(filename, filename_len TSRMLS_CC);
if (resolved_path) {
-//??? RETURN_STRING(resolved_path, 0);
+ // TODO: avoid reallocation ???
RETVAL_STRING(resolved_path);
efree(resolved_path);
return;
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 19a3fda93b..290fa21879 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -132,8 +132,7 @@ static zend_string *php_bin2hex(const unsigned char *old, const size_t oldlen)
zend_string *result;
size_t i, j;
-//??? result = (unsigned char *) safe_emalloc(oldlen, 2 * sizeof(char), 1);
- result = STR_ALLOC(oldlen * 2 * sizeof(char), 0);
+ result = STR_SAFE_ALLOC(oldlen, 2 * sizeof(char), 0, 0);
for (i = j = 0; i < oldlen; i++) {
result->val[j++] = hexconvtab[old[i] >> 4];
@@ -277,8 +276,9 @@ PHP_FUNCTION(hex2bin)
RETURN_FALSE;
}
-//??? RETURN_STRINGL(result, newlen, 0);
- RETURN_STRINGL(result, newlen);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL(result, newlen);
+ efree(result);
}
/* }}} */
@@ -3566,8 +3566,12 @@ PHPAPI int php_char_to_str_ex(char *str, uint len, char from, char *to, int to_l
return 0;
}
- ZVAL_NEW_STR(result, STR_ALLOC(len + (char_count * (to_len - 1)), 0));
- target = Z_STRVAL_P(result); //??? = target = safe_emalloc(char_count, to_len, len + 1);
+ if (to_len > 0) {
+ ZVAL_NEW_STR(result, STR_SAFE_ALLOC(char_count, to_len - 1, len, 0));
+ } else {
+ ZVAL_NEW_STR(result, STR_ALLOC(len - char_count, 0));
+ }
+ target = Z_STRVAL_P(result);
if (case_sensitivity) {
char *p = str, *e = p + len, *s = str;
@@ -4265,13 +4269,12 @@ PHP_FUNCTION(nl2br)
Strips HTML and PHP tags from a string */
PHP_FUNCTION(strip_tags)
{
- char *buf;
+ zend_string *buf;
char *str;
zval *allow=NULL;
char *allowed_tags=NULL;
int allowed_tags_len=0;
int str_len;
- size_t retval_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z", &str, &str_len, &allow) == FAILURE) {
return;
@@ -4284,11 +4287,9 @@ PHP_FUNCTION(strip_tags)
allowed_tags_len = Z_STRLEN_P(allow);
}
- buf = estrndup(str, str_len);
- retval_len = php_strip_tags_ex(buf, str_len, NULL, allowed_tags, allowed_tags_len, 0);
-//??? RETURN_STRINGL(buf, retval_len, 0);
- RETVAL_STRINGL(buf, retval_len);
- efree(buf);
+ buf = STR_INIT(str, str_len, 0);
+ buf->len = php_strip_tags_ex(buf->val, str_len, NULL, allowed_tags, allowed_tags_len, 0);
+ RETURN_STR(buf);
}
/* }}} */
@@ -4852,9 +4853,8 @@ PHP_FUNCTION(str_repeat)
RETURN_EMPTY_STRING();
/* Initialize the result string */
+ result = STR_SAFE_ALLOC(input_len, mult, 0, 0);
result_len = input_len * mult;
-//??? result = (char *)safe_emalloc(input_len, mult, 1);
- result = STR_ALLOC(result_len, 0);
/* Heavy optimization for situations where input string is 1 byte long */
if (input_len == 1) {
diff --git a/ext/standard/type.c b/ext/standard/type.c
index 69e3305ea9..3feac632d8 100644
--- a/ext/standard/type.c
+++ b/ext/standard/type.c
@@ -392,7 +392,7 @@ PHP_FUNCTION(is_callable)
}
retval = zend_is_callable_ex(var, NULL, check_flags, &name, NULL, &error TSRMLS_CC);
zval_dtor(callable_name);
- //??? is it necessary to be consistent with old PHP
+ //??? is it necessary to be consistent with old PHP ("\0" support)
name->len = strlen(name->val);
ZVAL_STR(callable_name, name);
} else {
diff --git a/ext/standard/uniqid.c b/ext/standard/uniqid.c
index ecaf6c0f5f..610fb2809c 100644
--- a/ext/standard/uniqid.c
+++ b/ext/standard/uniqid.c
@@ -81,7 +81,7 @@ PHP_FUNCTION(uniqid)
spprintf(&uniqid, 0, "%s%08x%05x", prefix, sec, usec);
}
-//??? RETURN_STRING(uniqid, 0);
+ // TODO: avoid reallocation ???
RETVAL_STRING(uniqid);
efree(uniqid);
}
diff --git a/ext/standard/var.c b/ext/standard/var.c
index 4aedbc83fe..3f669dbda1 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -193,7 +193,7 @@ again:
break;
}
case IS_REFERENCE:
-//??? hide references with refcount==1 (for compatibility)
+ //??? hide references with refcount==1 (for compatibility)
if (Z_REFCOUNT_P(struc) > 1) {
is_ref = 1;
}
@@ -359,7 +359,7 @@ head_done:
break;
}
case IS_REFERENCE:
-//??? hide references with refcount==1 (for compatibility)
+ //??? hide references with refcount==1 (for compatibility)
if (Z_REFCOUNT_P(struc) > 1) {
is_ref = 1;
}