summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@nokia.com>2009-09-08 11:48:13 (GMT)
committerJoerg Bornemann <joerg.bornemann@nokia.com>2009-09-08 11:53:02 (GMT)
commit89982a2c1678f2c42c9abf1021b35ed45004278c (patch)
tree5dd44c198ece51cca73fca41e561b87eca8bdb20
parentb20e6675573e26c6b9e9090bce81a4d61c9a99f5 (diff)
downloadQt-89982a2c1678f2c42c9abf1021b35ed45004278c.zip
Qt-89982a2c1678f2c42c9abf1021b35ed45004278c.tar.gz
Qt-89982a2c1678f2c42c9abf1021b35ed45004278c.tar.bz2
fix major memory leak in JavaScriptCore RegisterFile on Windows CE
On Widows CE we must decommit all committed pages before we release them. See VirtualFree documentation. Desktop Windows behaves much smoother in this situation. Reviewed-by: ariya
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.cpp b/src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.cpp
index 29a13ca..de5175e 100644
--- a/src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.cpp
@@ -36,6 +36,9 @@ RegisterFile::~RegisterFile()
#if HAVE(MMAP)
munmap(reinterpret_cast<char*>(m_buffer), ((m_max - m_start) + m_maxGlobals) * sizeof(Register));
#elif HAVE(VIRTUALALLOC)
+#if PLATFORM(WINCE)
+ VirtualFree(m_buffer, DWORD(m_commitEnd) - DWORD(m_buffer), MEM_DECOMMIT);
+#endif
VirtualFree(m_buffer, 0, MEM_RELEASE);
#else
fastFree(m_buffer);