Skip to content

Commit fbaba3c

Browse files
committed
Release version 0.5.3
1 parent e280ce1 commit fbaba3c

File tree

8 files changed

+39
-31
lines changed

8 files changed

+39
-31
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Change Log
22

3-
## [0.5.3-pre]
3+
## [0.5.3]
44
- BREAKING: 0.5.3 changes behavour of builder create calls so arguments
55
are always ordered by field id when id attributes are being used, for
66
example `MyGame_Example_Monster_create()` in `monster_test_fbs` (#81).

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,13 @@ fi
289289

290290
## Status
291291

292-
Release 0.5.3 (not released)
293-
BREAKING: 0.5.3 changes behavour of builder create calls so arguments
294-
are always ordered by field id when id attributes are being used, for
295-
example `MyGame_Example_Monster_create()` in `monster_test.fbs`
296-
([#81](https://github.com/dvidelabs/flatcc/issues/81)).
292+
Release 0.5.3 inlcudes various bug fixes (see changelog) and one
293+
breaking but likely low impact change: BREAKING: 0.5.3 changes behavour
294+
of builder create calls so arguments are always ordered by field id when
295+
id attributes are being used, for example
296+
`MyGame_Example_Monster_create()` in `monster_test.fbs`
297+
([#81](https://github.com/dvidelabs/flatcc/issues/81)). Fixes undefined
298+
behavior when sorting tables by a numeric key field.
297299

298300
Release 0.5.2 introduces optional `_get` suffix to reader methods. By
299301
using `flatcc -g` only `_get` methods are valid. This removes potential

include/flatcc/flatcc_version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
extern "C" {
33
#endif
44

5-
#define FLATCC_VERSION_TEXT "0.5.3-pre"
5+
#define FLATCC_VERSION_TEXT "0.5.3"
66
#define FLATCC_VERSION_MAJOR 0
77
#define FLATCC_VERSION_MINOR 5
88
#define FLATCC_VERSION_PATCH 3
99
/* 1 or 0 */
10-
#define FLATCC_VERSION_RELEASED 0
10+
#define FLATCC_VERSION_RELEASED 1
1111

1212
#ifdef __cplusplus
1313
}

include/flatcc/reflection/flatbuffers_common_builder.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef FLATBUFFERS_COMMON_BUILDER_H
22
#define FLATBUFFERS_COMMON_BUILDER_H
33

4-
/* Generated by flatcc 0.5.3-pre FlatBuffers schema compiler for C by dvide.com */
4+
/* Generated by flatcc 0.5.3 FlatBuffers schema compiler for C by dvide.com */
55

66
/* Common FlatBuffers build functionality for C. */
77

@@ -227,15 +227,15 @@ static inline N ## _union_vec_ref_t N ## _vec_create(NS ## builder_t *B, const N
227227
__flatbuffers_build_union_vector_ops(NS, N ## _vec, N, N)\
228228
/* Preserves DAG structure separately for type and value vector, so a type vector could be shared for many value vectors. */\
229229
static inline N ## _union_vec_ref_t N ## _vec_clone(NS ## builder_t *B, N ##_union_vec_t vec)\
230-
{ N ## _union_vec_ref_t _uvref, _ret = { 0, 0 }; NS ## union_ref_t _uref; size_t _i, _len; flatcc_builder_ref_t *_p;\
230+
{ N ## _union_vec_ref_t _uvref, _ret = { 0, 0 }; NS ## union_ref_t _uref; size_t _i, _len;\
231231
if (vec.type == 0) return _ret;\
232232
_uvref.type = flatcc_builder_refmap_find(B, vec.type); _uvref.value = flatcc_builder_refmap_find(B, vec.value);\
233233
_len = N ## _union_vec_len(vec); if (_uvref.type == 0) {\
234234
_uvref.type = flatcc_builder_refmap_insert(B, vec.type, (flatcc_builder_create_type_vector(B, vec.type, _len))); }\
235235
if (_uvref.type == 0) return _ret; if (_uvref.value == 0) {\
236-
if (flatcc_builder_start_offset_vector(B)) return _ret;\
237-
_p = flatcc_builder_extend_offset_vector(B, _len); if (!_p) return _ret;\
238-
for (_i = 0; _i < _len; ++_i) { _uref = N ## _clone(B, N ## _union_vec_at(vec, _i)); _p[_i] = _uref.value; }\
236+
if (flatcc_builder_start_offset_vector(B)) return _ret;\
237+
for (_i = 0; _i < _len; ++_i) { _uref = N ## _clone(B, N ## _union_vec_at(vec, _i));\
238+
if (!_uref.value || !(flatcc_builder_offset_vector_push(B, _uref.value))) return _ret; }\
239239
_uvref.value = flatcc_builder_refmap_insert(B, vec.value, flatcc_builder_end_offset_vector(B));\
240240
if (_uvref.value == 0) return _ret; } return _uvref; }
241241

@@ -287,10 +287,10 @@ static inline N ## _vec_ref_t N ## _vec_create(NS ## builder_t *B, const N ## _r
287287
{ return flatcc_builder_create_offset_vector(B, data, len); }\
288288
__flatbuffers_build_offset_vector_ops(NS, N ## _vec, N, N)\
289289
static inline N ## _vec_ref_t N ## _vec_clone(NS ## builder_t *B, N ##_vec_t vec)\
290-
{ int _ret; N ## _ref_t *_p; size_t _i, _len; __flatbuffers_memoize_begin(B, vec);\
290+
{ int _ret; N ## _ref_t _e; size_t _i, _len; __flatbuffers_memoize_begin(B, vec);\
291291
_len = N ## _vec_len(vec); if (flatcc_builder_start_offset_vector(B)) return 0;\
292-
_p = flatcc_builder_extend_offset_vector(B, _len); if (!_p) return 0;\
293-
for (_i = 0; _i < _len; ++_i) { if (!(_p[_i] = N ## _clone(B, N ## _vec_at(vec, _i)))) return 0; }\
292+
for (_i = 0; _i < _len; ++_i) { if (!(_e = N ## _clone(B, N ## _vec_at(vec, _i)))) return 0;\
293+
if (!flatcc_builder_offset_vector_push(B, _e)) return 0; }\
294294
__flatbuffers_memoize_end(B, vec, flatcc_builder_end_offset_vector(B)); }\
295295

296296
#define __flatbuffers_build_string_ops(NS, N)\

include/flatcc/reflection/flatbuffers_common_reader.h

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef FLATBUFFERS_COMMON_READER_H
22
#define FLATBUFFERS_COMMON_READER_H
33

4-
/* Generated by flatcc 0.5.3-pre FlatBuffers schema compiler for C by dvide.com */
4+
/* Generated by flatcc 0.5.3 FlatBuffers schema compiler for C by dvide.com */
55

66
/* Common FlatBuffers read functionality for C. */
77

@@ -392,18 +392,24 @@ __flatbuffers_heap_sort(N, , __flatbuffers_identity, N ## _vec_at, N ## _vec_len
392392
static inline void N ## _vec_sort(N ## _mutable_vec_t vec__tmp) { __ ## N ## __heap_sort(vec__tmp); }
393393
#define __flatbuffers_scalar_diff(x, y) ((x) < (y) ? -1 : (x) > (y))
394394
#define __flatbuffers_string_diff(x, y) __flatbuffers_string_n_cmp((x), (const char *)(y), flatbuffers_string_len(y))
395-
#define __flatbuffers_scalar_swap(vec, a, b, TE) { TE x__tmp = vec[b]; vec[b] = vec[a]; vec[a] = x__tmp; }
396-
#define __flatbuffers_string_swap(vec, a, b, TE)\
395+
#define __flatbuffers_value_swap(vec, a, b, TE) { TE x__tmp = vec[b]; vec[b] = vec[a]; vec[a] = x__tmp; }
396+
#define __flatbuffers_uoffset_swap(vec, a, b, TE)\
397397
{ TE ta__tmp, tb__tmp, d__tmp;\
398398
d__tmp = (TE)((a - b) * sizeof(vec[0]));\
399399
ta__tmp = __flatbuffers_uoffset_read_from_pe(vec + b) - d__tmp;\
400400
tb__tmp = __flatbuffers_uoffset_read_from_pe(vec + a) + d__tmp;\
401401
__flatbuffers_uoffset_write_to_pe(vec + a, ta__tmp);\
402402
__flatbuffers_uoffset_write_to_pe(vec + b, tb__tmp); }
403-
#define __flatbuffers_define_sort_by_scalar_field(N, NK, TK, TE)\
404-
__flatbuffers_define_sort_by_field(N, NK, TK, TE, __flatbuffers_scalar_diff, __flatbuffers_scalar_swap)
405-
#define __flatbuffers_define_sort_by_string_field(N, NK)\
406-
__flatbuffers_define_sort_by_field(N, NK, flatbuffers_string_t, flatbuffers_uoffset_t, __flatbuffers_string_diff, __flatbuffers_string_swap)
403+
#define __flatbuffers_scalar_swap(vec, a, b, TE) __flatbuffers_value_swap(vec, a, b, TE)
404+
#define __flatbuffers_string_swap(vec, a, b, TE) __flatbuffers_uoffset_swap(vec, a, b, TE)
405+
#define __flatbuffers_struct_swap(vec, a, b, TE) __flatbuffers_value_swap(vec, a, b, TE)
406+
#define __flatbuffers_table_swap(vec, a, b, TE) __flatbuffers_uoffset_swap(vec, a, b, TE)
407+
#define __flatbuffers_define_struct_sort_by_scalar_field(N, NK, TK, TE)\
408+
__flatbuffers_define_sort_by_field(N, NK, TK, TE, __flatbuffers_scalar_diff, __flatbuffers_struct_swap)
409+
#define __flatbuffers_define_table_sort_by_scalar_field(N, NK, TK)\
410+
__flatbuffers_define_sort_by_field(N, NK, TK, flatbuffers_uoffset_t, __flatbuffers_scalar_diff, __flatbuffers_table_swap)
411+
#define __flatbuffers_define_table_sort_by_string_field(N, NK)\
412+
__flatbuffers_define_sort_by_field(N, NK, flatbuffers_string_t, flatbuffers_uoffset_t, __flatbuffers_string_diff, __flatbuffers_table_swap)
407413
#define __flatbuffers_define_scalar_sort(N, T) __flatbuffers_define_sort(N, T, T, __flatbuffers_scalar_diff, __flatbuffers_scalar_swap)
408414
#define __flatbuffers_define_string_sort() __flatbuffers_define_sort(flatbuffers_string, flatbuffers_string_t, flatbuffers_uoffset_t, __flatbuffers_string_diff, __flatbuffers_string_swap)
409415
#define __flatbuffers_define_scalar_vector(N, T)\

include/flatcc/reflection/reflection_builder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef REFLECTION_BUILDER_H
22
#define REFLECTION_BUILDER_H
33

4-
/* Generated by flatcc 0.5.3-pre FlatBuffers schema compiler for C by dvide.com */
4+
/* Generated by flatcc 0.5.3 FlatBuffers schema compiler for C by dvide.com */
55

66
#ifndef REFLECTION_READER_H
77
#include "reflection_reader.h"

include/flatcc/reflection/reflection_reader.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef REFLECTION_READER_H
22
#define REFLECTION_READER_H
33

4-
/* Generated by flatcc 0.5.3-pre FlatBuffers schema compiler for C by dvide.com */
4+
/* Generated by flatcc 0.5.3 FlatBuffers schema compiler for C by dvide.com */
55

66
#ifndef FLATBUFFERS_COMMON_READER_H
77
#include "flatbuffers_common_reader.h"
@@ -166,7 +166,7 @@ __flatbuffers_table_as_root(reflection_KeyValue)
166166

167167
__flatbuffers_define_string_field(0, reflection_KeyValue, key, 1)
168168
__flatbuffers_define_find_by_string_field(reflection_KeyValue, key)
169-
__flatbuffers_define_sort_by_string_field(reflection_KeyValue, key)
169+
__flatbuffers_define_table_sort_by_string_field(reflection_KeyValue, key)
170170
__flatbuffers_define_default_find_by_string_field(reflection_KeyValue, key)
171171
__flatbuffers_define_default_scan_by_string_field(reflection_KeyValue, key)
172172
#define reflection_KeyValue_vec_sort reflection_KeyValue_vec_sort_by_key
@@ -184,7 +184,7 @@ __flatbuffers_define_string_field(0, reflection_EnumVal, name, 1)
184184
__flatbuffers_define_scalar_field(1, reflection_EnumVal, value, flatbuffers_int64, int64_t, INT64_C(0))
185185
/* Note: find only works on vectors sorted by this field. */
186186
__flatbuffers_define_find_by_scalar_field(reflection_EnumVal, value, int64_t)
187-
__flatbuffers_define_sort_by_scalar_field(reflection_EnumVal, value, int64_t, flatbuffers_uoffset_t)
187+
__flatbuffers_define_table_sort_by_scalar_field(reflection_EnumVal, value, int64_t)
188188
__flatbuffers_define_default_find_by_scalar_field(reflection_EnumVal, value, int64_t)
189189
__flatbuffers_define_default_scan_by_scalar_field(reflection_EnumVal, value, int64_t)
190190
#define reflection_EnumVal_vec_sort reflection_EnumVal_vec_sort_by_value
@@ -201,7 +201,7 @@ __flatbuffers_table_as_root(reflection_Enum)
201201

202202
__flatbuffers_define_string_field(0, reflection_Enum, name, 1)
203203
__flatbuffers_define_find_by_string_field(reflection_Enum, name)
204-
__flatbuffers_define_sort_by_string_field(reflection_Enum, name)
204+
__flatbuffers_define_table_sort_by_string_field(reflection_Enum, name)
205205
__flatbuffers_define_default_find_by_string_field(reflection_Enum, name)
206206
__flatbuffers_define_default_scan_by_string_field(reflection_Enum, name)
207207
#define reflection_Enum_vec_sort reflection_Enum_vec_sort_by_name
@@ -220,7 +220,7 @@ __flatbuffers_table_as_root(reflection_Field)
220220

221221
__flatbuffers_define_string_field(0, reflection_Field, name, 1)
222222
__flatbuffers_define_find_by_string_field(reflection_Field, name)
223-
__flatbuffers_define_sort_by_string_field(reflection_Field, name)
223+
__flatbuffers_define_table_sort_by_string_field(reflection_Field, name)
224224
__flatbuffers_define_default_find_by_string_field(reflection_Field, name)
225225
__flatbuffers_define_default_scan_by_string_field(reflection_Field, name)
226226
#define reflection_Field_vec_sort reflection_Field_vec_sort_by_name
@@ -244,7 +244,7 @@ __flatbuffers_table_as_root(reflection_Object)
244244

245245
__flatbuffers_define_string_field(0, reflection_Object, name, 1)
246246
__flatbuffers_define_find_by_string_field(reflection_Object, name)
247-
__flatbuffers_define_sort_by_string_field(reflection_Object, name)
247+
__flatbuffers_define_table_sort_by_string_field(reflection_Object, name)
248248
__flatbuffers_define_default_find_by_string_field(reflection_Object, name)
249249
__flatbuffers_define_default_scan_by_string_field(reflection_Object, name)
250250
#define reflection_Object_vec_sort reflection_Object_vec_sort_by_name

include/flatcc/reflection/reflection_verifier.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef REFLECTION_VERIFIER_H
22
#define REFLECTION_VERIFIER_H
33

4-
/* Generated by flatcc 0.5.3-pre FlatBuffers schema compiler for C by dvide.com */
4+
/* Generated by flatcc 0.5.3 FlatBuffers schema compiler for C by dvide.com */
55

66
#ifndef REFLECTION_READER_H
77
#include "reflection_reader.h"

0 commit comments

Comments
 (0)