|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2015-12-22 12:36 UTC] bwoebi@php.net
-Assigned To:
+Assigned To: dmitry
[2015-12-22 22:48 UTC] dmitry@php.net
[2015-12-22 22:48 UTC] dmitry@php.net
-Status: Assigned
+Status: Closed
[2015-12-22 22:50 UTC] dmitry@php.net
[2016-04-18 09:30 UTC] bwoebi@php.net
[2016-07-20 11:34 UTC] davey@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 01:00:01 2025 UTC |
Description: ------------ Outputting live ranges gives me: LIVE RANGES: 6: L6 - L7 (tmp/var) 3: L2 - L9 Now, if there is an exception thrown between opline 2 and 5, http://lxr.php.net/xref/PHP_MASTER/Zend/zend_execute.c#2586 has a condition with a break;, hence cleanup won't be done for temporary 3 (the array). Removing that break; fixes it, but maybe there is a better fix? Test script: --------------- try { $a = "1"; [1, (y().$a.$a) . ($a.$a)]; } catch (Error $e) { var_dump($e->getMessage()); } Actual result: -------------- HashTable leaks: [Tue Dec 22 13:21:38 2015] Script: '/Users/Bob/php-src-X/_' Zend/zend_vm_execute.h(7076) : Freeing 0x10BC5A360 (56 bytes), script=/Users/Bob/php-src-X/_ [Tue Dec 22 13:21:38 2015] Script: '/Users/Bob/php-src-X/_' /Users/Bob/php-src-X/Zend/zend_hash.c(133) : Freeing 0x10BC60A00 (264 bytes), script=/Users/Bob/php-src-X/_ === Total 2 memory leaks detected ===