Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:26879 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 25703 invoked by uid 1010); 9 Dec 2006 20:25:20 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 25688 invoked from network); 9 Dec 2006 20:25:20 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 9 Dec 2006 20:25:20 -0000 Authentication-Results: pb1.pair.com smtp.mail=shire@php.net; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=shire@php.net; sender-id=unknown Received-SPF: error (pb1.pair.com: domain php.net from 204.15.20.10 cause and error) X-PHP-List-Original-Sender: shire@php.net X-Host-Fingerprint: 204.15.20.10 aggr1.fw.sctm.tfbnw.net Windows 2000 SP4, XP SP1 Received: from [204.15.20.10] ([204.15.20.10:15115] helo=kitt.TheFacebook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E6/86-50161-A6B1B754 for ; Sat, 09 Dec 2006 15:24:45 -0500 Received: from [192.168.1.100] ([66.92.189.79]) by kitt.TheFacebook.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.1830); Sat, 9 Dec 2006 12:24:08 -0800 Mime-Version: 1.0 (Apple Message framework v752.3) Content-Transfer-Encoding: 7bit Message-ID: Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: PHP internals Date: Sat, 9 Dec 2006 12:24:07 -0800 X-Mailer: Apple Mail (2.752.3) X-OriginalArrivalTime: 09 Dec 2006 20:24:08.0415 (UTC) FILETIME=[FADA76F0:01C71BCF] Subject: extract() optimization From: shire@php.net (Brian Shire) This patch should safely remove what appears to be unnecessary strlen () calls for php_valid_var_name() used by extract(). diff --git a/ext/standard/array.c b/ext/standard/array.c index fad4bf2..401957f 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1270,15 +1270,13 @@ PHP_FUNCTION(array_search) /* }}} */ -static int php_valid_var_name(char *var_name) +static int php_valid_var_name(char *var_name, uint len) { - int len, i; + int i; if (!var_name) return 0; - len = strlen(var_name); - if (!isalpha((int)((unsigned char *)var_name)[0]) && var_name [0] != '_') return 0; @@ -1409,7 +1407,7 @@ PHP_FUNCTION(extract) case EXTR_PREFIX_INVALID: if (final_name.len == 0) { - if (!php_valid_var_name (var_name)) { + if (!php_valid_var_name (var_name, var_name_len)) { smart_str_appendl (&final_name, Z_STRVAL_PP(prefix), Z_STRLEN_PP(prefix)); smart_str_appendc (&final_name, '_'); smart_str_appendl (&final_name, var_name, var_name_len); @@ -1426,7 +1424,7 @@ PHP_FUNCTION(extract) if (final_name.len) { smart_str_0(&final_name); - if (php_valid_var_name(final_name.c)) { + if (php_valid_var_name(final_name.c, final_name.len)) { if (extract_refs) { zval **orig_var; -Brian Shire shire@facebook.com shire@php.net aim: int80h