diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-07-28 14:00:33 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-07-28 14:08:25 +0400 |
commit | df01833477cc66b6bb7fe08b5c3678fcc900b664 (patch) | |
tree | 1938573b54c298f8eed2281072f522b20af1d807 /source/blender/makesrna/intern/rna_internal.h | |
parent | 115458b53e5e98ee6bc8cd97fcc38cdc51f89df7 (diff) |
RNA: check for valid ranges with int properties (C11 only)
Diffstat (limited to 'source/blender/makesrna/intern/rna_internal.h')
-rw-r--r-- | source/blender/makesrna/intern/rna_internal.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index e3179077cf4..bec6afff131 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -413,4 +413,24 @@ void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values); # endif #endif +/* C11 for compile time range checks */ +#if __STDC_VERSION__ >= 201112L +# define USE_RNA_RANGE_CHECK +# define TYPEOF_MAX(x) \ + _Generic(x, \ + bool: 1, \ + char: CHAR_MAX, signed char: SCHAR_MAX, unsigned char: UCHAR_MAX, \ + signed short: SHRT_MAX, unsigned short: USHRT_MAX, \ + signed int: INT_MAX, unsigned int: UINT_MAX, \ + float: FLT_MAX, double: DBL_MAX) + +# define TYPEOF_MIN(x) \ + _Generic(x, \ + bool: 0, \ + char: CHAR_MIN, signed char: SCHAR_MIN, unsigned char: 0, \ + signed short: SHRT_MIN, unsigned short: 0, \ + signed int: INT_MIN, unsigned int: 0, \ + float: -FLT_MAX, double: -DBL_MAX) +#endif + #endif /* __RNA_INTERNAL_H__ */ |