DNA: disable 'int8_t' since it's not properly supported

Currently negative values from this type will be changed if the
int8_t changes to a int16_t for e.g.
This commit is contained in:
Campbell Barton
2020-07-24 19:39:44 +10:00
parent 22b8ac80d2
commit 141deeefff
2 changed files with 15 additions and 4 deletions

View File

@@ -235,7 +235,9 @@ void DNA_alias_maps(enum eDNA_RenameDir version_dir, GHash **r_struct_map, GHash
if (version_dir == DNA_RENAME_STATIC_FROM_ALIAS) {
const char *renames[][2] = {
{"int8_t", "char"}, /* Note that a char is always unsigned in Blender. */
/* Disable 'int8_t' until we support 'signed char', since changing negative
* values to a different type isn't supported and will change the value. */
/* {"int8_t", "char"}, */
{"uint8_t", "uchar"},
{"int16_t", "short"},
{"uint16_t", "ushort"},

View File

@@ -1530,12 +1530,21 @@ int main(int argc, char **argv)
#endif /* if 0 */
/* even though DNA supports, 'long' shouldn't be used since it can be either 32 or 64bit,
* use int or int64_t instead.
/**
* Disable types:
*
* - 'long': even though DNA supports, 'long' shouldn't be used since it can be either 32 or 64bit,
* use int, int32_t or int64_t instead.
* - 'int8_t': as DNA doesn't yet support 'signed char' types,
* all char types are assumed to be unsigned.
* We should be able to support this, it's just not something which has been added yet.
*
* Only valid use would be as a runtime variable if an API expected a long,
* but so far we dont have this happening. */
* but so far we don't have this happening.
*/
#ifdef __GNUC__
# pragma GCC poison long
# pragma GCC poison int8_t
#endif
#include "DNA_ID.h"