Annotation of embedaddon/php/ext/mbstring/tests/bug26639.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #26639 (mb_convert_variables() clutters variables beyond the references)
                      3: --SKIPIF--
                      4: <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
                      5: --FILE--
                      6: <?php
                      7: $a = "あいうえお";
                      8: $b = $a;
                      9: mb_convert_variables("EUC-JP", "Shift_JIS", $b);
                     10: debug_zval_dump($a);
                     11: debug_zval_dump($b);
                     12: unset($a);
                     13: unset($b);
                     14: 
                     15: $a = "あいうえお";
                     16: $b = &$a;
                     17: mb_convert_variables("EUC-JP", "Shift_JIS", $b);
                     18: debug_zval_dump($a);
                     19: debug_zval_dump($b);
                     20: unset($a);
                     21: unset($b);
                     22: 
                     23: $a = "あいうえお";
                     24: $b = array($a);
                     25: $c = $b;
                     26: mb_convert_variables("EUC-JP", "Shift_JIS", $c);
                     27: debug_zval_dump($b);
                     28: debug_zval_dump($c);
                     29: unset($a);
                     30: unset($b);
                     31: unset($c);
                     32: 
                     33: $a = "あいうえお";
                     34: $b = array(&$a);
                     35: $c = $b;
                     36: mb_convert_variables("EUC-JP", "Shift_JIS", $c);
                     37: debug_zval_dump($b);
                     38: debug_zval_dump($c);
                     39: unset($a);
                     40: unset($b);
                     41: unset($c);
                     42: 
                     43: $a = "あいうえお";
                     44: $b = array($a);
                     45: $c = &$b;
                     46: mb_convert_variables("EUC-JP", "Shift_JIS", $c);
                     47: debug_zval_dump($b);
                     48: debug_zval_dump($c);
                     49: unset($a);
                     50: unset($b);
                     51: unset($c);
                     52: 
                     53: $a = "あいうえお";
                     54: $b = array(&$a);
                     55: $c = &$b;
                     56: mb_convert_variables("EUC-JP", "Shift_JIS", $c);
                     57: debug_zval_dump($b);
                     58: debug_zval_dump($c);
                     59: unset($a);
                     60: unset($b);
                     61: unset($c);
                     62: 
                     63: $a = array(array("あいうえお"));
                     64: $b = $a;
                     65: $c = $b;
                     66: mb_convert_variables("EUC-JP", "Shift_JIS", $c);
                     67: debug_zval_dump($b);
                     68: debug_zval_dump($c);
                     69: unset($a);
                     70: unset($b);
                     71: unset($c);
                     72: ?>
                     73: --EXPECT--
                     74: string(10) "あいうえお" refcount(2)
                     75: string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
                     76: string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
                     77: string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
                     78: array(1) refcount(2){
                     79:   [0]=>
                     80:   string(10) "あいうえお" refcount(2)
                     81: }
                     82: array(1) refcount(2){
                     83:   [0]=>
                     84:   string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
                     85: }
                     86: array(1) refcount(2){
                     87:   [0]=>
                     88:   &string(10) "あいうえお" refcount(2)
                     89: }
                     90: array(1) refcount(2){
                     91:   [0]=>
                     92:   string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
                     93: }
                     94: array(1) refcount(1){
                     95:   [0]=>
                     96:   string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
                     97: }
                     98: array(1) refcount(1){
                     99:   [0]=>
                    100:   string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
                    101: }
                    102: array(1) refcount(1){
                    103:   [0]=>
                    104:   string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
                    105: }
                    106: array(1) refcount(1){
                    107:   [0]=>
                    108:   string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
                    109: }
                    110: array(1) refcount(3){
                    111:   [0]=>
                    112:   array(1) refcount(1){
                    113:     [0]=>
                    114:     string(10) "あいうえお" refcount(1)
                    115:   }
                    116: }
                    117: array(1) refcount(2){
                    118:   [0]=>
                    119:   array(1) refcount(1){
                    120:     [0]=>
                    121:     string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
                    122:   }
                    123: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>