]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - interpreter/RegisterFile.cpp
JavaScriptCore-554.1.tar.gz
[apple/javascriptcore.git] / interpreter / RegisterFile.cpp
index 50698f5f010ef3191e7a69eeb2cb772d848e3dbc..cfcf1d36277b3d5b06c7b6daf09ee3aeefe80abb 100644 (file)
@@ -42,4 +42,15 @@ RegisterFile::~RegisterFile()
 #endif
 }
 
+void RegisterFile::releaseExcessCapacity()
+{
+#if HAVE(MMAP) && HAVE(MADV_FREE) && !HAVE(VIRTUALALLOC)
+    while (madvise(m_start, (m_max - m_start) * sizeof(Register), MADV_FREE) == -1 && errno == EAGAIN) { }
+#elif HAVE(VIRTUALALLOC)
+    VirtualFree(m_start, (m_max - m_start) * sizeof(Register), MEM_DECOMMIT);
+    m_commitEnd = m_start;
+#endif
+    m_maxUsed = m_start;
+}
+
 } // namespace JSC