For the "ordered comparison of pointer with integer zero" warning, fix
this by comparing (type) -1 against (type) 0 instead of just 0, so if
"type" is a pointer type, this pointer type will be applied to the right
operand too, thus fixing the warning.
e1b9425...
by
=?utf-8?q?J=C3=A9r=C3=A9mie_Galarneau?= <email address hidden>
Fix: Double free when calling bt_context_remove_trace()
ctf_close_trace was being called twice when calling
bt_context_remove_trace thus causing free() to be called on an invalid
pointer.
Calling bt_context_remove_trace() would call ctf_close_trace() once via
the close_handle callback registered on the ctf format struct and a
second call would take place from bt_trace_handle_destroy() which is
registered as the value_destroy_func on the trace_handles hash table of
the current context.
bt_trace_handle_destroy() now only deallocates the trace handle and does
not perform the trace closing. This makes the
bt_trace_handle_create/destroy and bt_context_add/remove_trace parts of
the public API symmetric.
The crash is reproducible by invoking the tests-python.py script.
Fix: alignment of compound types containing array field
The "alignment" field of the array declaration is used by compound types
containing an array field to calculate the alignment needed for the
compound types.