diff options
author | Campbell Barton <campbell@blender.org> | 2022-02-08 03:50:14 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-02-08 03:54:44 +0300 |
commit | 7df651367fbd8c9510c7e02b18301bd2f28c3574 (patch) | |
tree | 63af09a374b06038a76437840090bded924cc7e1 /source | |
parent | e5fc579073a4c15fe2c5aa74604ec16dcbc618ff (diff) |
Cleanup: use an intermediate value for cast_primitive_type
Assign the actual value before casting to large uint64_t/double types.
This improves readability, especially in cases where both pointer
and integer casts were used in one expression, to make matters worse
clang-format treated these casts as a multiplication.
This also made debugging/printing the values more of a hassle.
No functional changes (GCC produced identical output).
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/makesdna/intern/dna_genfile.c | 60 |
1 files changed, 40 insertions, 20 deletions
diff --git a/source/blender/makesdna/intern/dna_genfile.c b/source/blender/makesdna/intern/dna_genfile.c index 6322cb459dd..7e9fabcc998 100644 --- a/source/blender/makesdna/intern/dna_genfile.c +++ b/source/blender/makesdna/intern/dna_genfile.c @@ -737,45 +737,65 @@ static void cast_primitive_type(const eSDNA_Type old_type, for (int a = 0; a < array_len; a++) { switch (old_type) { - case SDNA_TYPE_CHAR: - old_value_i = *old_data; + case SDNA_TYPE_CHAR: { + const char value = *old_data; + old_value_i = value; old_value_f = (double)old_value_i; break; - case SDNA_TYPE_UCHAR: - old_value_i = *((unsigned char *)old_data); + } + case SDNA_TYPE_UCHAR: { + const uchar value = *((uchar *)old_data); + old_value_i = value; old_value_f = (double)old_value_i; break; - case SDNA_TYPE_SHORT: - old_value_i = *((short *)old_data); + } + case SDNA_TYPE_SHORT: { + const short value = *((short *)old_data); + old_value_i = value; old_value_f = (double)old_value_i; break; - case SDNA_TYPE_USHORT: - old_value_i = *((unsigned short *)old_data); + } + case SDNA_TYPE_USHORT: { + const ushort value = *((unsigned short *)old_data); + old_value_i = value; old_value_f = (double)old_value_i; break; - case SDNA_TYPE_INT: - old_value_i = *((int *)old_data); + } + case SDNA_TYPE_INT: { + const int value = *((int *)old_data); + old_value_i = value; old_value_f = (double)old_value_i; break; - case SDNA_TYPE_FLOAT: - old_value_f = *((float *)old_data); + } + case SDNA_TYPE_FLOAT: { + const float value = *((float *)old_data); + old_value_f = value; old_value_i = (uint64_t)(int64_t)old_value_f; break; - case SDNA_TYPE_DOUBLE: - old_value_f = *((double *)old_data); + } + case SDNA_TYPE_DOUBLE: { + const double value = *((double *)old_data); + old_value_f = value; old_value_i = (uint64_t)(int64_t)old_value_f; break; - case SDNA_TYPE_INT64: - old_value_i = (uint64_t) * ((int64_t *)old_data); + } + case SDNA_TYPE_INT64: { + const int64_t value = *((int64_t *)old_data); + old_value_i = (uint64_t)value; old_value_f = (double)old_value_i; break; - case SDNA_TYPE_UINT64: - old_value_i = *((uint64_t *)old_data); + } + case SDNA_TYPE_UINT64: { + const uint64_t value = *((uint64_t *)old_data); + old_value_i = value; old_value_f = (double)old_value_i; break; - case SDNA_TYPE_INT8: - old_value_i = (uint64_t) * ((int8_t *)old_data); + } + case SDNA_TYPE_INT8: { + const int8_t value = *((int8_t *)old_data); + old_value_i = (uint64_t)value; old_value_f = (double)old_value_i; + } } switch (new_type) { |