summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-07-01 14:08:54 +0300
committerDmitry Stogov <dmitry@zend.com>2015-07-01 14:08:54 +0300
commit7d82deab35806c7169d2e40116f236d16cc80f3f (patch)
tree4547811a7286d432e491566b8f6b5d9d06ad5e71
parent34ec1c96e7125122b0cc069d31e237041dfc1067 (diff)
downloadphp-git-7d82deab35806c7169d2e40116f236d16cc80f3f.tar.gz
Cleanup (avoid reallocation).
-rw-r--r--ext/spl/spl_directory.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c
index a7d8a32563..bf23c644c9 100644
--- a/ext/spl/spl_directory.c
+++ b/ext/spl/spl_directory.c
@@ -1546,8 +1546,6 @@ SPL_METHOD(RecursiveDirectoryIterator, getSubPath)
SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
{
spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
- char *sub_name;
- size_t len;
char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH;
if (zend_parse_parameters_none() == FAILURE) {
@@ -1555,9 +1553,7 @@ SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
}
if (intern->u.dir.sub_path) {
- len = spprintf(&sub_name, 0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name);
- RETVAL_STRINGL(sub_name, len);
- efree(sub_name);
+ RETURN_NEW_STR(strpprintf(0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name));
} else {
RETURN_STRING(intern->u.dir.entry.d_name);
}