diff --git a/inc/hgl/Macro.h b/inc/hgl/Macro.h index 9a337bf..4fd5fa2 100644 --- a/inc/hgl/Macro.h +++ b/inc/hgl/Macro.h @@ -26,7 +26,7 @@ namespace hgl } \ } - #define SAFE_CLEAR_OBJECT_ARRAY(name,num) { \ + #define SAFE_CLEAR_OBJECT_ARRAY_OBJECT(name,num) { \ if(name&&num>=0) \ { \ int safe_clear_object_array_number=num; \ @@ -40,6 +40,13 @@ namespace hgl } \ } + #define SAFE_CLEAR_OBJECT_ARRAY(name) { \ + for(auto *obj:name)\ + { \ + SAFE_CLEAR(obj); \ + } \ + } + #define FREE_OBJECT_ARRAY(name,num) { \ if(name&&num>=0) \ { \ diff --git a/inc/hgl/type/Smart.h b/inc/hgl/type/Smart.h index e86b6eb..0a3b88a 100644 --- a/inc/hgl/type/Smart.h +++ b/inc/hgl/type/Smart.h @@ -630,7 +630,7 @@ namespace hgl ~AutoDeleteObjectArray() { - SAFE_CLEAR_OBJECT_ARRAY(items,count); + SAFE_CLEAR_OBJECT_ARRAY_OBJECT(items,count); } TP *operator -> (){return items;}