Commit: 0d444bd3efa592d67ba3a319c27c25920bee6d26
Author: Jacques Lucke
Date: Sat Mar 7 17:14:45 2020 +0100
Branches: blenloader-api
https://developer.blender.org/rB0d444bd3efa592d67ba3a319c27c25920bee6d26
simplify reading raw arrays of primitive types
===================================================================
M source/blender/blenloader/BLO_callback_api.h
M source/blender/modifiers/intern/MOD_hook.c
===================================================================
diff --git a/source/blender/blenloader/BLO_callback_api.h
b/source/blender/blenloader/BLO_callback_api.h
index faae9e157b1..3d4d063e056 100644
--- a/source/blender/blenloader/BLO_callback_api.h
+++ b/source/blender/blenloader/BLO_callback_api.h
@@ -1,6 +1,8 @@
#ifndef __BLO_CALLBACK_API_H__
#define __BLO_CALLBACK_API_H__
+#include "BLI_endian_switch.h"
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -45,6 +47,15 @@ bool BLO_read_requires_endian_switch(BloReader *reader);
typedef void (*BloLinkListFn)(BloReader *reader, void *data);
void BLO_read_list(BloReader *reader, struct ListBase *list, BloLinkListFn
callback);
+#define BLO_read_array_endian_corrected(reader, type_name, ptr, array_size) \
+ BLO_read_update_address(reader, ptr); \
+ if (BLO_read_requires_endian_switch(reader)) { \
+ BLI_endian_switch_##type_name##_array(ptr, array_size); \
+ }
+
+#define BLO_read_array_int32(reader, ptr, array_size) \
+ BLO_read_array_endian_corrected(reader, int32, ptr, array_size)
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/modifiers/intern/MOD_hook.c
b/source/blender/modifiers/intern/MOD_hook.c
index d90157e4b70..b155ccff776 100644
--- a/source/blender/modifiers/intern/MOD_hook.c
+++ b/source/blender/modifiers/intern/MOD_hook.c
@@ -138,11 +138,7 @@ static void bloWrite(BloWriter *writer, const ModifierData
*md)
static void bloRead(BloReader *reader, ModifierData *md)
{
HookModifierData *hmd = (HookModifierData *)md;
-
- BLO_read_update_address(reader, hmd->indexar);
- if (BLO_read_requires_endian_switch(reader)) {
- BLI_endian_switch_int32_array(hmd->indexar, hmd->totindex);
- }
+ BLO_read_array_int32(reader, hmd->indexar, hmd->totindex);
BLO_read_update_address(reader, hmd->curfalloff);
if (hmd->curfalloff) {
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs