Kaynağa Gözat

Minimum deleted slot required to refactor

szdytom 1 yıl önce
ebeveyn
işleme
8458e49a30
2 değiştirilmiş dosya ile 3 ekleme ve 3 silme
  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-")
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /utf-8 /Ox /jumptablerdata /GS-")
     add_compile_options(/wd4267 /wd4244)
     add_compile_options(/wd4267 /wd4244)
 else()
 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
     # disable -Wshorten-64-to-32 for apple
     if(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) {
 static bool pkpy_Dict__refactor(pkpy_Dict* self, void* vm) {
     int deleted_slots = self->_entries.count - self->count;
     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
     // shrink
     self->_version += 1;
     self->_version += 1;