diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-10-31 23:42:02 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-10-31 23:42:02 +0400 |
commit | 26541afc8b9bfa0b11ecd2dcdab120cfcfff5d92 (patch) | |
tree | 34d0089f75d0f2a517bbe3cddd01d67c8fc82c3f /source/blender/blenkernel/intern | |
parent | c7fbeded4c6cce637f4d64c366d12070d15d2f0c (diff) |
code style: use switch for IDP_EqualsProperties()
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/idprop.c | 84 |
1 files changed, 47 insertions, 37 deletions
diff --git a/source/blender/blenkernel/intern/idprop.c b/source/blender/blenkernel/intern/idprop.c index 88f7d8f6191..584de4cd982 100644 --- a/source/blender/blenkernel/intern/idprop.c +++ b/source/blender/blenkernel/intern/idprop.c @@ -641,48 +641,58 @@ int IDP_EqualsProperties(IDProperty *prop1, IDProperty *prop2) else if (prop1->type != prop2->type) return 0; - if (prop1->type == IDP_INT) - return (IDP_Int(prop1) == IDP_Int(prop2)); - else if (prop1->type == IDP_FLOAT) - return (IDP_Float(prop1) == IDP_Float(prop2)); - else if (prop1->type == IDP_DOUBLE) - return (IDP_Double(prop1) == IDP_Double(prop2)); - else if (prop1->type == IDP_STRING) - return ((prop1->len == prop2->len) && strncmp(IDP_String(prop1), IDP_String(prop2), prop1->len) == 0); - else if (prop1->type == IDP_ARRAY) { - if (prop1->len == prop2->len && prop1->subtype == prop2->subtype) - return memcmp(IDP_Array(prop1), IDP_Array(prop2), idp_size_table[(int)prop1->subtype] * prop1->len); - else - return 0; - } - else if (prop1->type == IDP_GROUP) { - IDProperty *link1, *link2; - - if (BLI_countlist(&prop1->data.group) != BLI_countlist(&prop2->data.group)) - return 0; - - for (link1 = prop1->data.group.first; link1; link1 = link1->next) { - link2 = IDP_GetPropertyFromGroup(prop2, link1->name); - - if (!IDP_EqualsProperties(link1, link2)) + switch (prop1->type) { + case IDP_INT: + return (IDP_Int(prop1) == IDP_Int(prop2)); + case IDP_FLOAT: + return (IDP_Float(prop1) == IDP_Float(prop2)); + case IDP_DOUBLE: + return (IDP_Double(prop1) == IDP_Double(prop2)); + case IDP_STRING: + return ((prop1->len == prop2->len) && strncmp(IDP_String(prop1), IDP_String(prop2), prop1->len) == 0); + case IDP_ARRAY: + if (prop1->len == prop2->len && prop1->subtype == prop2->subtype) { + return memcmp(IDP_Array(prop1), IDP_Array(prop2), idp_size_table[(int)prop1->subtype] * prop1->len); + } + else { return 0; - } + } + case IDP_GROUP: + { + IDProperty *link1, *link2; - return 1; - } - else if (prop1->type == IDP_IDPARRAY) { - IDProperty *array1 = IDP_IDPArray(prop1); - IDProperty *array2 = IDP_IDPArray(prop2); - int i; + if (BLI_countlist(&prop1->data.group) != BLI_countlist(&prop2->data.group)) + return 0; - if (prop1->len != prop2->len) - return 0; - - for (i = 0; i < prop1->len; i++) - if (!IDP_EqualsProperties(&array1[i], &array2[i])) + for (link1 = prop1->data.group.first; link1; link1 = link1->next) { + link2 = IDP_GetPropertyFromGroup(prop2, link1->name); + + if (!IDP_EqualsProperties(link1, link2)) + return 0; + } + + return 1; + } + case IDP_IDPARRAY: + { + IDProperty *array1 = IDP_IDPArray(prop1); + IDProperty *array2 = IDP_IDPArray(prop2); + int i; + + if (prop1->len != prop2->len) return 0; + + for (i = 0; i < prop1->len; i++) + if (!IDP_EqualsProperties(&array1[i], &array2[i])) + return 0; + return 1; + } + default: + /* should never get here */ + BLI_assert(0); + break; } - + return 1; } |