Add compilation option to disable struct packing.
Update issue 136 Status: FixedInGit
This commit is contained in:
@@ -24,6 +24,9 @@ __BIG_ENDIAN__ Set this if your platform stores integers and
|
|||||||
floats in big-endian format. Mixed-endian
|
floats in big-endian format. Mixed-endian
|
||||||
systems (different layout for ints and floats)
|
systems (different layout for ints and floats)
|
||||||
are currently not supported.
|
are currently not supported.
|
||||||
|
PB_NO_PACKED_STRUCTS Disable packed structs. Increases RAM usage but
|
||||||
|
is necessary on some platforms that do not
|
||||||
|
support unaligned memory access.
|
||||||
PB_ENABLE_MALLOC Set this to enable dynamic allocation support
|
PB_ENABLE_MALLOC Set this to enable dynamic allocation support
|
||||||
in the decoder.
|
in the decoder.
|
||||||
PB_MAX_REQUIRED_FIELDS Maximum number of required fields to check for
|
PB_MAX_REQUIRED_FIELDS Maximum number of required fields to check for
|
||||||
|
|||||||
11
pb.h
11
pb.h
@@ -17,6 +17,10 @@
|
|||||||
* stores the most-significant byte first. */
|
* stores the most-significant byte first. */
|
||||||
/* #define __BIG_ENDIAN__ 1 */
|
/* #define __BIG_ENDIAN__ 1 */
|
||||||
|
|
||||||
|
/* Define this if your CPU / compiler combination does not support
|
||||||
|
* unaligned memory access to packed structures. */
|
||||||
|
/* #define PB_NO_PACKED_STRUCTS 1 */
|
||||||
|
|
||||||
/* Increase the number of required fields that are tracked.
|
/* Increase the number of required fields that are tracked.
|
||||||
* A compiler warning will tell if you need this. */
|
* A compiler warning will tell if you need this. */
|
||||||
/* #define PB_MAX_REQUIRED_FIELDS 256 */
|
/* #define PB_MAX_REQUIRED_FIELDS 256 */
|
||||||
@@ -75,7 +79,12 @@
|
|||||||
/* Macro for defining packed structures (compiler dependent).
|
/* Macro for defining packed structures (compiler dependent).
|
||||||
* This just reduces memory requirements, but is not required.
|
* This just reduces memory requirements, but is not required.
|
||||||
*/
|
*/
|
||||||
#if defined(__GNUC__) || defined(__clang__)
|
#if defined(PB_NO_PACKED_STRUCTS)
|
||||||
|
/* Disable struct packing */
|
||||||
|
# define PB_PACKED_STRUCT_START
|
||||||
|
# define PB_PACKED_STRUCT_END
|
||||||
|
# define pb_packed
|
||||||
|
#elif defined(__GNUC__) || defined(__clang__)
|
||||||
/* For GCC and clang */
|
/* For GCC and clang */
|
||||||
# define PB_PACKED_STRUCT_START
|
# define PB_PACKED_STRUCT_START
|
||||||
# define PB_PACKED_STRUCT_END
|
# define PB_PACKED_STRUCT_END
|
||||||
|
|||||||
Reference in New Issue
Block a user