Eo add ref: Fix a bug causing leaks and wrong refcount in some cases.
authorTom Hacohen <tom@stosb.com>
Tue, 12 Jul 2016 09:34:54 +0000 (10:34 +0100)
committerTom Hacohen <tom@stosb.com>
Tue, 12 Jul 2016 10:09:40 +0000 (11:09 +0100)
commitfdc0eef77097a2a2da9d8cb2b147db5956c75ba1
tree248ef1c8730168166c18a7dbf4a6f5a41cc25b41
parenta5eb66edd4245a5198ca0881e3583e8cc415afa3
Eo add ref: Fix a bug causing leaks and wrong refcount in some cases.

When using eo_add_ref, it was increasing the refcount before the user
context in the addition has fully ended. This means the object had its
reference increased while still not finalized, which means it was
sometimes passed with an increased refcount to unsuspecting class code.
The correct behaviour is to increase the reference count just before
returning the object to the user at the end of eo_add so the reference
count is only increased for whoever asked for it.

Breaks ABI!

@fix
src/lib/eo/Eo.h
src/lib/eo/eo.c