@@ -52,7 +52,7 @@ extern "C"
52
52
#elif !defined(RCUTILS_NO_FILESYSTEM )
53
53
#define RCUTILS_SAFE_FWRITE_TO_STDERR (msg ) \
54
54
do {fwrite(msg, sizeof(char), strlen(msg), stderr);} while (0)
55
- #else
55
+ #else
56
56
#define RCUTILS_SAFE_FWRITE_TO_STDERR (msg )
57
57
#endif
58
58
@@ -65,6 +65,8 @@ extern "C"
65
65
* \param[in] format_string The string to be used as the format of the error message.
66
66
* \param[in] ... Arguments for the format string.
67
67
*/
68
+
69
+ #if !defined(RCUTILS_AVOID_DYNAMIC_ALLOCATION )
68
70
#define RCUTILS_SAFE_FWRITE_TO_STDERR_WITH_FORMAT_STRING (format_string , ...) \
69
71
do { \
70
72
char output_msg[RCUTILS_ERROR_MESSAGE_MAX_LENGTH]; \
@@ -75,7 +77,11 @@ extern "C"
75
77
RCUTILS_SAFE_FWRITE_TO_STDERR(output_msg); \
76
78
} \
77
79
} while (0)
80
+ #else
81
+ #define RCUTILS_SAFE_FWRITE_TO_STDERR_WITH_FORMAT_STRING (format_string , ...)
82
+ #endif
78
83
84
+ #if !defined(RCUTILS_AVOID_DYNAMIC_ALLOCATION )
79
85
/// The maximum length a formatted number is allowed to have.
80
86
#define RCUTILS_ERROR_STATE_LINE_NUMBER_STR_MAX_LENGTH 20 // "18446744073709551615"
81
87
@@ -102,6 +108,13 @@ extern "C"
102
108
RCUTILS_ERROR_STATE_LINE_NUMBER_STR_MAX_LENGTH - \
103
109
RCUTILS_ERROR_FORMATTING_CHARACTERS - \
104
110
1)
111
+ #else
112
+ #define RCUTILS_ERROR_STATE_LINE_NUMBER_STR_MAX_LENGTH 1
113
+ #define RCUTILS_ERROR_FORMATTING_CHARACTERS 1
114
+ #define RCUTILS_ERROR_MESSAGE_MAX_LENGTH 1
115
+ #define RCUTILS_ERROR_STATE_MESSAGE_MAX_LENGTH 1
116
+ #define RCUTILS_ERROR_STATE_FILE_MAX_LENGTH 1
117
+ #endif // RCUTILS_AVOID_DYNAMIC_ALLOCATION
105
118
106
119
/// Struct wrapping a fixed-size c string used for returning the formatted error string.
107
120
typedef struct rcutils_error_string_s
@@ -123,7 +136,7 @@ typedef struct rcutils_error_state_s
123
136
} rcutils_error_state_t ;
124
137
125
138
// make sure our math is right...
126
- #if __STDC_VERSION__ >= 201112L
139
+ #if __STDC_VERSION__ >= 201112L && !defined( RCUTILS_AVOID_DYNAMIC_ALLOCATION )
127
140
static_assert (
128
141
sizeof (rcutils_error_string_t ) == (
129
142
RCUTILS_ERROR_STATE_MESSAGE_MAX_LENGTH +
0 commit comments