File tree Expand file tree Collapse file tree 2 files changed +22
-5
lines changed
Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change 1313 "maintainer" : true
1414 }
1515 ],
16- "version" : " 7.1.1 " ,
16+ "version" : " 7.1.2 " ,
1717 "frameworks" : " *" ,
1818 "platforms" : " *" ,
1919 "export" : {
Original file line number Diff line number Diff line change 44 */
55
66#include <stddef.h>
7- #include <stdalign.h>
87#include <stdint.h>
98#include "tiny_stack_allocator.h"
109#include "tiny_utils.h"
1110
12- #define max (a , b ) ((a) > (b) ? a : b)
11+ typedef struct {
12+ uint8_t data ;
13+ union {
14+ int _int ;
15+ long long _long_long ;
16+ float _float ;
17+ double _double ;
18+ long double _long_double ;
19+ void * _pointer ;
20+ } alignment ;
21+ } alignment_t ;
22+
23+ enum {
24+ alignment = offsetof(alignment_t , alignment ),
25+ };
1326
1427#define define_worker (_size ) \
1528 static void worker_##_size(tiny_stack_allocator_callback_t callback, void* context) \
1629 { \
17- max_align_t data[max(_size, sizeof(max_align_t)) / sizeof(max_align_t)]; \
18- callback(context, data); \
30+ uint8_t data[_size + alignment - 1]; \
31+ uintptr_t offset = alignment - ((uintptr_t)data % alignment); \
32+ if(offset == alignment) { \
33+ offset = 0; \
34+ } \
35+ callback(context, &data[offset]); \
1936 } \
2037 typedef int dummy##_size
2138
You can’t perform that action at this time.
0 commit comments