summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2010-11-08 20:26:14 +0000
committerFelipe Pena <felipe@php.net>2010-11-08 20:26:14 +0000
commit22f7998a0d527b9f7116e780f2658afa6faf9550 (patch)
tree3b823aa6ce73727a1916ffd467291fce83230005
parentb01b2e6d0b75463a3c06065c84276c994d3e06b1 (diff)
downloadphp-git-22f7998a0d527b9f7116e780f2658afa6faf9550.tar.gz
- Fix the fix (wrong behavior)
-rwxr-xr-xext/spl/spl_iterators.c2
-rw-r--r--ext/spl/tests/bug50579.phpt6
2 files changed, 4 insertions, 4 deletions
diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c
index dc6f17bac0..9c1750b219 100755
--- a/ext/spl/spl_iterators.c
+++ b/ext/spl/spl_iterators.c
@@ -1796,7 +1796,7 @@ SPL_METHOD(RegexIterator, accept)
break;
case REGIT_MODE_REPLACE:
- replacement = zend_read_property(intern->std.ce, intern->inner.zobject, "replacement", sizeof("replacement")-1, 1 TSRMLS_CC);
+ replacement = zend_read_property(intern->std.ce, getThis(), "replacement", sizeof("replacement")-1, 1 TSRMLS_CC);
result = php_pcre_replace_impl(intern->u.regex.pce, subject, subject_len, replacement, 0, &result_len, -1, &count TSRMLS_CC);
if (intern->u.regex.flags & REGIT_USE_KEY) {
diff --git a/ext/spl/tests/bug50579.phpt b/ext/spl/tests/bug50579.phpt
index 3045228ef0..e32262a743 100644
--- a/ext/spl/tests/bug50579.phpt
+++ b/ext/spl/tests/bug50579.phpt
@@ -9,23 +9,23 @@ class foo extends ArrayIterator {
'test1'=>'test888',
'test2'=>'what?',
'test3'=>'test999'));
- $this->replacement = '[$1]';
}
}
$h = new foo;
$i = new RegexIterator($h, '/^test(.*)/', RegexIterator::REPLACE);
-$h->replacement = '[$0]';
+$i->replacement = '[$0]';
foreach ($i as $name=>$value) {
echo $name . '=>' . $value . "\n";
}
-$h->replacement = '$1';
+$i->replacement = '$1';
foreach ($i as $name=>$value) {
echo $name . '=>' . $value . "\n";
}
$h = new foo;
$i = new RegexIterator($h, '/^test(.*)/', RegexIterator::REPLACE);
+$i->replacement = '[$1]';
foreach ($i as $name=>$value) {
echo $name . '=>' . $value . "\n";
}