Cleanup: Ipo: Move to IDTypeInfo and remove unused BKE API.
authorBastien Montagne <b.mont29@gmail.com>
Mon, 9 Mar 2020 16:35:32 +0000 (17:35 +0100)
committerBastien Montagne <b.mont29@gmail.com>
Mon, 9 Mar 2020 17:09:23 +0000 (18:09 +0100)
source/blender/blenkernel/BKE_idtype.h
source/blender/blenkernel/BKE_ipo.h
source/blender/blenkernel/intern/idtype.c
source/blender/blenkernel/intern/ipo.c
source/blender/blenkernel/intern/lib_id_delete.c

index 4e715fe23eaab475cd8eea492689722d402758ac..2bd111bea0e5d1ede5c7e7c8e4c3182d4b3ca4a6 100644 (file)
@@ -136,7 +136,7 @@ extern IDTypeInfo IDType_ID_IM;
 extern IDTypeInfo IDType_ID_LT;
 extern IDTypeInfo IDType_ID_LA;
 extern IDTypeInfo IDType_ID_CA;
-// extern IDTypeInfo IDType_ID_IP;
+extern IDTypeInfo IDType_ID_IP;
 extern IDTypeInfo IDType_ID_KE;
 extern IDTypeInfo IDType_ID_WO;
 extern IDTypeInfo IDType_ID_SCR;
index 2825c4845ae294337178f78560636b78120ee640..ab5d2f664410bd7554e92ca3446931387a8d4fbd 100644 (file)
@@ -34,8 +34,6 @@ void do_versions_ipos_to_animato(struct Main *main);
 
 /* --------------------- xxx stuff ------------------------ */
 
-void BKE_ipo_free(struct Ipo *ipo);
-
 #ifdef __cplusplus
 };
 #endif
index 6074ba8514750bfebef3906ff8e5d99a1c40f891..6fbce96c870b91a7f85a7788604d7c4d318609d3 100644 (file)
@@ -63,7 +63,7 @@ static void id_type_init(void)
   INIT_TYPE(ID_LT);
   INIT_TYPE(ID_LA);
   INIT_TYPE(ID_CA);
-  // INIT_TYPE(ID_IP);
+  INIT_TYPE(ID_IP);
   INIT_TYPE(ID_KE);
   INIT_TYPE(ID_WO);
   INIT_TYPE(ID_SCR);
index f84d0681dadca5979ba856166190269cdd568a8f..57bd253900338d4354ebd090e7bfb2828a0b4edc 100644 (file)
@@ -62,6 +62,7 @@
 #include "BKE_action.h"
 #include "BKE_fcurve.h"
 #include "BKE_global.h"
+#include "BKE_idtype.h"
 #include "BKE_key.h"
 #include "BKE_lib_id.h"
 #include "BKE_main.h"
 
 static CLG_LogRef LOG = {"bke.ipo"};
 
-/* *************************************************** */
-/* Old-Data Freeing Tools */
-
-/* Free data from old IPO-Blocks (those which haven't been converted), but not IPO block itself */
-// XXX this shouldn't be necessary anymore, but may occur while not all data is converted yet
-void BKE_ipo_free(Ipo *ipo)
+static void ipo_free_data(ID *id)
 {
+  Ipo *ipo = (Ipo *)id;
+
   IpoCurve *icu, *icn;
   int n = 0;
 
@@ -110,6 +108,25 @@ void BKE_ipo_free(Ipo *ipo)
   }
 }
 
+IDTypeInfo IDType_ID_IP = {
+    .id_code = ID_IP,
+    .id_filter = 0,
+    .main_listbase_index = INDEX_ID_IP,
+    .struct_size = sizeof(Ipo),
+    .name = "Ipo",
+    .name_plural = "ipos",
+    .translation_context = "",
+    .flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_LIBLINKING | IDTYPE_FLAGS_NO_MAKELOCAL,
+
+    .init_data = NULL,
+    .copy_data = NULL,
+    .free_data = ipo_free_data,
+    .make_local = NULL,
+};
+
+/* *************************************************** */
+/* Old-Data Freeing Tools */
+
 /* *************************************************** */
 /* ADRCODE to RNA-Path Conversion Code  - Special (Bitflags) */
 
index 241b7dab0b9856596ab11e3889cf0974f9bd3e55..fb89aab75fb3e89e159ae785e7c89dc1e8d354bf 100644 (file)
@@ -172,7 +172,7 @@ void BKE_libblock_free_datablock(ID *id, const int UNUSED(flag))
       BLI_assert(0);
       break;
     case ID_IP: /* Deprecated. */
-      BKE_ipo_free((Ipo *)id);
+      BLI_assert(0);
       break;
     case ID_KE:
       BLI_assert(0);