diff options
author | David Robillard <d@drobilla.net> | 2013-05-27 00:36:51 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-05-27 00:36:51 +0000 |
commit | 1b82dc6308fdaa3478b7adfd730977a4415dfdf1 (patch) | |
tree | ad81383f37c5f966ed2156cebbb595eeeb623796 /lv2/lv2plug.in/ns/ext/atom/forge.h | |
parent | dda54da26f30f848e6d2ed9d4c8c0c1d921bf5d0 (diff) | |
download | lv2-1b82dc6308fdaa3478b7adfd730977a4415dfdf1.tar.xz |
Fix crash in forge.h when pushing atoms to a full buffer.
Diffstat (limited to 'lv2/lv2plug.in/ns/ext/atom/forge.h')
-rw-r--r-- | lv2/lv2plug.in/ns/ext/atom/forge.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lv2/lv2plug.in/ns/ext/atom/forge.h b/lv2/lv2plug.in/ns/ext/atom/forge.h index bd6f1e4..c825806 100644 --- a/lv2/lv2plug.in/ns/ext/atom/forge.h +++ b/lv2/lv2plug.in/ns/ext/atom/forge.h @@ -184,8 +184,8 @@ lv2_atom_forge_pop(LV2_Atom_Forge* forge, LV2_Atom_Forge_Frame* frame) static inline bool lv2_atom_forge_top_is(LV2_Atom_Forge* forge, uint32_t type) { - return forge->stack && - lv2_atom_forge_deref(forge, forge->stack->ref)->type == type; + return forge->stack && forge->stack->ref && + (lv2_atom_forge_deref(forge, forge->stack->ref)->type == type); } /** @@ -536,8 +536,8 @@ lv2_atom_forge_resource(LV2_Atom_Forge* forge, { sizeof(LV2_Atom_Object) - sizeof(LV2_Atom), forge->Resource }, { id, otype } }; - LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a)); - return lv2_atom_forge_push(forge, frame, out); + return lv2_atom_forge_push( + forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); } /** @@ -553,8 +553,8 @@ lv2_atom_forge_blank(LV2_Atom_Forge* forge, { sizeof(LV2_Atom_Object) - sizeof(LV2_Atom), forge->Blank }, { id, otype } }; - LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a)); - return lv2_atom_forge_push(forge, frame, out); + return lv2_atom_forge_push( + forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); } /** @@ -582,8 +582,8 @@ lv2_atom_forge_sequence_head(LV2_Atom_Forge* forge, { sizeof(LV2_Atom_Sequence) - sizeof(LV2_Atom), forge->Sequence }, { unit, 0 } }; - LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a)); - return lv2_atom_forge_push(forge, frame, out); + return lv2_atom_forge_push( + forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); } /** |