瀏覽代碼

Minimum deleted slot required to refactor

szdytom 1 年之前
父節點
當前提交
8458e49a30
共有 2 個文件被更改,包括 3 次插入3 次删除
  1. 2 2
      CMakeLists.txt
  2. 1 1
      src/objects/dict.c

+ 2 - 2
CMakeLists.txt

@@ -12,8 +12,8 @@ if(MSVC)
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /utf-8 /Ox /jumptablerdata /GS-")
     add_compile_options(/wd4267 /wd4244)
 else()
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions -frtti -O2")
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions -frtti")
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
 
     # disable -Wshorten-64-to-32 for apple
     if(APPLE)

+ 1 - 1
src/objects/dict.c

@@ -101,7 +101,7 @@ static void pkpy_Dict__extendht(pkpy_Dict* self, void* vm) {
 
 static bool pkpy_Dict__refactor(pkpy_Dict* self, void* vm) {
     int deleted_slots = self->_entries.count - self->count;
-    if(deleted_slots < self->_entries.count * 0.25) return false;
+    if(deleted_slots >= 8 && deleted_slots < self->_entries.count * 0.25) return false;
 
     // shrink
     self->_version += 1;