diff options
Diffstat (limited to 'source/blender/makesdna')
-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) { |