Skip to content

Commit 1697949

Browse files
author
gopalv
committed
merge to trunk - Allow zend_is_interned_string to be pluggable
git-svn-id: http://svn.php.net/repository/php/php-src/trunk@313805 c90b9560-bf6c-de11-be94-00142212c4b1
1 parent 343402a commit 1697949

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

Zend/zend_string.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@
3030
#endif
3131

3232
ZEND_API const char *(*zend_new_interned_string)(const char *str, int len, int free_src TSRMLS_DC);
33+
ZEND_API zend_bool (*zend_is_interned_string)(const char *str TSRMLS_DC);
3334
ZEND_API void (*zend_interned_strings_snapshot)(TSRMLS_D);
3435
ZEND_API void (*zend_interned_strings_restore)(TSRMLS_D);
3536

3637
static const char *zend_new_interned_string_int(const char *str, int len, int free_src TSRMLS_DC);
38+
static zend_bool zend_is_interned_string_int(const char *str TSRMLS_DC);
3739
static void zend_interned_strings_snapshot_int(TSRMLS_D);
3840
static void zend_interned_strings_restore_int(TSRMLS_D);
3941

@@ -64,6 +66,7 @@ void zend_interned_strings_init(TSRMLS_D)
6466
#endif
6567

6668
zend_new_interned_string = zend_new_interned_string_int;
69+
zend_is_interned_string = zend_is_interned_string_int;
6770
zend_interned_strings_snapshot = zend_interned_strings_snapshot_int;
6871
zend_interned_strings_restore = zend_interned_strings_restore_int;
6972
}
@@ -177,6 +180,11 @@ static const char *zend_new_interned_string_int(const char *arKey, int nKeyLengt
177180
#endif
178181
}
179182

183+
static zend_bool zend_is_interned_string_int(const char *s TSRMLS_DC)
184+
{
185+
return (((s) >= CG(interned_strings_start)) && ((s) < CG(interned_strings_end)));
186+
}
187+
180188
static void zend_interned_strings_snapshot_int(TSRMLS_D)
181189
{
182190
CG(interned_strings_snapshot_top) = CG(interned_strings_top);

Zend/zend_string.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "zend.h"
2525

2626
ZEND_API extern const char *(*zend_new_interned_string)(const char *str, int len, int free_src TSRMLS_DC);
27+
ZEND_API extern zend_bool (*zend_is_interned_string)(const char *str TSRMLS_DC);
2728
ZEND_API extern void (*zend_interned_strings_snapshot)(TSRMLS_D);
2829
ZEND_API extern void (*zend_interned_strings_restore)(TSRMLS_D);
2930

@@ -33,7 +34,7 @@ void zend_interned_strings_dtor(TSRMLS_D);
3334
#ifndef ZTS
3435

3536
#define IS_INTERNED(s) \
36-
(((s) >= CG(interned_strings_start)) && ((s) < CG(interned_strings_end)))
37+
(zend_is_interned_string ? zend_is_interned_string((s) TSRMLS_CC) : 0)
3738

3839
#else
3940

0 commit comments

Comments
 (0)