Commit Graph

229 Commits

Author SHA1 Message Date
Tom Hacohen 4cd64fc85a Eo: Added some hierarchy reference checks.
Check that objects are freed when they should be freed.

SVN revision: 71795
2012-06-07 10:54:17 +00:00
Tom Hacohen 84d2f4c322 Eo: Made composite objects more robust.
Mark on the object itself if it's composited -> faster.
Remove from composite list if reparented.

SVN revision: 71794
2012-06-07 10:54:15 +00:00
Tom Hacohen 626a12f1d4 Eo: Improved docs.
SVN revision: 71793
2012-06-07 10:54:12 +00:00
Tom Hacohen 27d522514d Eo: Removed redundant reparent.
SVN revision: 71792
2012-06-07 10:54:08 +00:00
Tom Hacohen 657aee840e Eo: added back eo_del.
It's needed for proper object hierarchy handling.

SVN revision: 71775
2012-06-07 07:17:45 +00:00
Tom Hacohen e158149868 Eo: don't reparent if it's the same parent.
SVN revision: 71774
2012-06-07 07:17:42 +00:00
Tom Hacohen 0c32fc3e04 Eo: Fixed error message.
SVN revision: 71747
2012-06-06 11:41:56 +00:00
Tom Hacohen 7c7a6dd1fa Eo: Added a phantom ref if we manual free.
This lets us use eo_do and the such on deleted to be manually freed objects.

SVN revision: 71746
2012-06-06 11:41:53 +00:00
Tom Hacohen 1754ca9608 Eo: Check adding/deleting callbacks from within callbacks doesn't crash.
SVN revision: 71745
2012-06-06 11:41:51 +00:00
Tom Hacohen 143e06b209 Eo: Added eo_parent_set.
SVN revision: 71744
2012-06-06 11:41:47 +00:00
Tom Hacohen 827c2f6dd6 Eo: Moved more saftey checks to release mode only.
SVN revision: 71711
2012-06-05 12:05:08 +00:00
Tom Hacohen a2cdb54d6b Eo: renamed the Magic for freed objects and better handle deleted objects.
Now we differentiate between deleted but not freed vs deleted and freed
objects.

SVN revision: 71710
2012-06-05 12:05:06 +00:00
Tom Hacohen 8f1077493f Eo: Rephrased error message.
SVN revision: 71709
2012-06-05 12:05:02 +00:00
Tom Hacohen 8fb40ff92f Eo: Added a flag to know if we have any callbacks to clear.
SVN revision: 71663
2012-06-03 13:33:09 +00:00
Tom Hacohen d07f3da945 Eo: Improved checks in signals example.
SVN revision: 71662
2012-06-03 13:33:04 +00:00
Tom Hacohen a137241395 Eo: print an error when trying to delete a non-existent callback.
SVN revision: 71658
2012-06-03 08:42:18 +00:00
Tom Hacohen b8aa1e41ed Eo: Remove del_lazy.
SVN revision: 71657
2012-06-03 08:42:15 +00:00
Tom Hacohen 0ca79b594c Eo: Added support for static class ids.
SVN revision: 71656
2012-06-03 08:42:12 +00:00
Tom Hacohen f4d0a797ec Eo: remove eo_del.
Useless for us, was only added to be like evas, but we don't need it
anymore.

SVN revision: 71655
2012-06-03 08:42:08 +00:00
Tom Hacohen 5600b332a4 Eo: Fix the test suite to run with CK_FORK=no.
Make it possible to do it, and make it default.
And remove the now useless valgrind option (we want to see still
      reachable now that libcheck works).

SVN revision: 71316
2012-05-22 11:13:15 +00:00
Tom Hacohen d618f543c5 Eo: Fixed memory leaks in the tests.
SVN revision: 71289
2012-05-21 15:18:54 +00:00
Tom Hacohen c41ffc3970 Eo: Fix illegal memcpy.
We should not try to copy ourselves to ourselves. :)

SVN revision: 71288
2012-05-21 15:18:52 +00:00
Tom Hacohen a4cc0edd4f Eo: Added more magic tests.
SVN revision: 71287
2012-05-21 14:48:38 +00:00
Tom Hacohen b977e11ea6 Eo: Made an hot-path check compile out when not in debug mode.
SVN revision: 71286
2012-05-21 14:48:32 +00:00
Tom Hacohen 665904fa6d Eo: Improve tests of magic values (NULL pointers).
SVN revision: 71283
2012-05-21 11:45:37 +00:00
Tom Hacohen aa6048286f Eo: Fix wrong usage of EO_OP_TYPE in eo_do/query*.
Thanks to Yakov for letting me know about it.

SVN revision: 71282
2012-05-21 11:45:34 +00:00
Tom Hacohen bff3911c08 Eo: Added eo_manual_free* funcs.
Patch by Daniel Zaoui.

SVN revision: 71281
2012-05-21 11:45:32 +00:00
Tom Hacohen a028e6d566 Eo: Fix pkg-config cflags.
SVN revision: 71275
2012-05-21 08:58:18 +00:00
Tom Hacohen f9d41588b8 Eo: Added extern "C" for the C++ fellows.
Oops, forgot, thanks to Yakov for letting me know.

SVN revision: 71189
2012-05-17 06:22:50 +00:00
Tom Hacohen 633cba4505 Eo: Fixed error message.
SVN revision: 71125
2012-05-15 15:06:40 +00:00
Tom Hacohen e7376bab0d Eo: Fixed error in docs.
SVN revision: 71122
2012-05-15 14:17:10 +00:00
Tom Hacohen 53da1d619b Eo: Added interface example.
SVN revision: 71121
2012-05-15 14:17:07 +00:00
Tom Hacohen 3ec36334a4 Eo: Added support for event freeze/thaw.
SVN revision: 71120
2012-05-15 14:17:03 +00:00
Tom Hacohen 2cf5e56694 Eo: Added support for class functions.
SVN revision: 71119
2012-05-15 14:16:58 +00:00
Tom Hacohen 90804082c0 Eo: Change mro_itr functions to be more generic.
SVN revision: 71118
2012-05-15 14:16:54 +00:00
Tom Hacohen 0da2123d50 Eo: add a check for future static classes.
SVN revision: 71078
2012-05-14 15:20:46 +00:00
Tom Hacohen 150b057a15 Eo: Added the two events I removed by accident.
SVN revision: 71001
2012-05-14 13:33:26 +00:00
Tom Hacohen 44f3d883d4 Eo: renamed eo_constructor_error_* -> eo_error_*.
This is in preperation of a future change to be able to set errors in
function calls as well, and not just constructors.
Also, I improved the error reporting.

SVN revision: 71000
2012-05-14 11:57:28 +00:00
Tom Hacohen 8599ecd123 Eo: Add missing @def to docs.
SVN revision: 70999
2012-05-14 11:57:25 +00:00
Tom Hacohen 3053d67f81 Eo: Move event callback handling to base class.
SVN revision: 70990
2012-05-14 07:35:19 +00:00
Tom Hacohen e392db30e3 Eo: Removed the object freed event.
SVN revision: 70989
2012-05-14 07:35:14 +00:00
Tom Hacohen 339964fd50 Eo: Added a new magic type to mark already deleted objects.
SVN revision: 70875
2012-05-08 14:22:57 +00:00
Tom Hacohen 4fb518d9a7 Eo: Keep artifical object ref a bit longer.
SVN revision: 70874
2012-05-08 14:22:53 +00:00
Tom Hacohen d8c978f7d4 Eo: rename delete to del.
SVN revision: 70867
2012-05-08 06:56:59 +00:00
Tom Hacohen 5c1aa9fd7d Eo: Flatten func array, so function fetching will always be fast.
SVN revision: 70866
2012-05-08 06:56:57 +00:00
Tom Hacohen 7d669b8b27 Eo: Fix parameter checking of eo_do_super.
SVN revision: 70865
2012-05-08 06:56:55 +00:00
Tom Hacohen 3b0dc78489 Eo: Make eo_parent_get accept const.
SVN revision: 70864
2012-05-08 06:56:50 +00:00
Tom Hacohen 59a132264f Eo: Test getting data from class with no data.
SVN revision: 70816
2012-05-06 14:18:44 +00:00
Tom Hacohen f26251cb4f Eo: Only implement _eo_class_mro_has when in testing mode.
SVN revision: 70799
2012-05-06 12:03:29 +00:00
Tom Hacohen a267989520 Eo: Added an internal _eo_ref/unref implementation.
We don't need to do all the regular checks when called from our code.

SVN revision: 70798
2012-05-06 12:03:26 +00:00
Tom Hacohen 019ba402d0 Eo: Improved the data structure used for func fetching.
Made it 2 levels instead of 1 and made it a lot smaller.

SVN revision: 70797
2012-05-06 12:03:23 +00:00
Tom Hacohen 3754fd077c Eo: Added an internal _eo_data_get implementation.
We don't need to do all the regular checks when called from our code.

SVN revision: 70796
2012-05-06 12:03:21 +00:00
Tom Hacohen 465eb13ce0 Eo: Fixed so versioning.
SVN revision: 70795
2012-05-06 12:03:18 +00:00
Tom Hacohen e1021dc21e Eo: Fixed the tests when building in "release mode".
Our release mode safety checks are less strict, so we have to disable some
of the test cases when testing there.

SVN revision: 70794
2012-05-06 12:03:16 +00:00
Tom Hacohen dba7e09641 Eo: Overhauled the mro-walking mechanism.
A lot faster now.

SVN revision: 70793
2012-05-06 12:03:13 +00:00
Tom Hacohen 8c5644d5f8 Eo: Fixed some issues.
SVN revision: 70792
2012-05-06 12:03:11 +00:00
Tom Hacohen 7faf06dfe2 Eo: Improved error reporting in data_get.
SVN revision: 70791
2012-05-06 12:03:07 +00:00
Tom Hacohen 742f987798 Eo: Added debug-mode check for eo_data_get.
SVN revision: 70625
2012-05-02 13:59:18 +00:00
Tom Hacohen 18eda16fa2 Eobj: Fixed wref bugs and improve it's tests.
SVN revision: 70584
2012-05-01 14:00:14 +00:00
Tom Hacohen e1efeae7a4 Eo: Rename SIG_* to EV_*.
Patch by Yakov Goldberg.

SVN revision: 70581
2012-05-01 13:23:30 +00:00
Tom Hacohen 62bafee059 Eo: Doc improvements.
SVN revision: 70580
2012-05-01 13:23:25 +00:00
Tom Hacohen eba59804c9 Eo: Make wref a c array instead of using event callbacks.
SVN revision: 70578
2012-05-01 12:38:14 +00:00
Tom Hacohen fd2054d821 Eo: Added eo_wref_del_safe.
SVN revision: 70573
2012-05-01 11:25:03 +00:00
Tom Hacohen 474c668038 Eo: Fixed a bug in wref del.
SVN revision: 70572
2012-05-01 11:25:00 +00:00
Tom Hacohen 6d15044bd4 Eo: Changed #EINA_TRUE/FALSE to @C EINA_*.
Removes the doxygen warning, but pretty annoying.

SVN revision: 70571
2012-05-01 10:42:55 +00:00
Tom Hacohen d1d81c4f86 Eobj: Fix issue with the typecheck macro.
It should not use the passed variable more than once.

SVN revision: 70568
2012-05-01 08:07:04 +00:00
Tom Hacohen 816a4ad71d Eobj: Rename to Eo.
Blame cedric.

SVN revision: 70566
2012-05-01 07:40:14 +00:00
Tom Hacohen c3cccdc7ce Eobj: Fix clang's (static analyser) warnings.
SVN revision: 70537
2012-04-29 15:52:37 +00:00
Tom Hacohen f393ebfffe Eobj: change the tests according to the new wref concept.
We should not delete the wref if object is already freed. It's because
of the damn new wref API.

SVN revision: 70438
2012-04-24 12:27:22 +00:00
Tom Hacohen 47161b869c Eobj: Fixed a possible bug with object deletion.
SVN revision: 70437
2012-04-24 12:16:23 +00:00
Tom Hacohen 9d03a70fa2 Eobj: Made weak ref a base class function.
SVN revision: 70436
2012-04-24 12:16:21 +00:00
Tom Hacohen 3cc5c60d17 Eobj: eobj_event_callback_del/_full renames.
eobj_event_callback_del -> eobj_event_callback_del_lazy.
eobj_event_callback_del_full -> eobj_event_callback_del.

Thanks to cedric for the suggestion.

SVN revision: 70435
2012-04-24 12:16:17 +00:00
Tom Hacohen 2c66050b65 Eobj: Changed all the eobj_do macros to lowercase.
code clutter--.

SVN revision: 70432
2012-04-24 08:56:49 +00:00
Tom Hacohen 4e05a6193c Eobj: Added infrastructure for const functions and eobj_query.
SVN revision: 70431
2012-04-24 08:04:14 +00:00
Tom Hacohen b004b4c833 Eobj: Fixed the order of parameters in the weak ref add func.
SVN revision: 70430
2012-04-24 08:04:09 +00:00
Tom Hacohen 331ef4b522 Eobj: Updated weak ref docs.
SVN revision: 70419
2012-04-23 12:47:44 +00:00
Tom Hacohen 31e6682a66 Eobj: Make eobj_weak_ref_add return the obejct being reffed.
Suggested by vtorri.

SVN revision: 70418
2012-04-23 12:32:36 +00:00
Tom Hacohen 5b529c506b Eobj: Added docs to the examples (needed for introspection).
Patch by Yakov Goldberg.

SVN revision: 70417
2012-04-23 12:32:34 +00:00
Tom Hacohen 44e549e812 Eobj: added warnings to eobj_ref's docs.
SVN revision: 70416
2012-04-23 11:51:49 +00:00
Tom Hacohen 5c5fc69bef Eobj: Changed weak-ref to work without allocating a structure.
Thanks to cedric.

SVN revision: 70415
2012-04-23 10:57:04 +00:00
Tom Hacohen 945cf1e9c2 Eobj: Rename _EOBJ_BUILD to EFL_EOBJ_BUILD.
vtorri is right pointing out it is a reserved name.

SVN revision: 70414
2012-04-23 08:26:40 +00:00
Tom Hacohen c599a9090d Eobj: Destruct the object upon deletion, free it when unrefed.
Sorted this out a bit. I believe the current behaviour is better than the
previous one.

SVN revision: 70413
2012-04-23 08:10:12 +00:00
Tom Hacohen f973b12daf Eobj: we don't care about "Still reachable".
It seems that libcheck keeps some reachable data, unfortunate as it makes
it very annoying for us to check for reachable memory in our code, but
letting valgrind report about it is just too damn annoying.

SVN revision: 70412
2012-04-23 08:10:09 +00:00
Tom Hacohen a1ed819ea2 Eobj: Use EINA_SAFETY when needed.
Also added a couple of EINA_UNLIKELY.

SVN revision: 70411
2012-04-23 08:10:06 +00:00
Tom Hacohen 8875c23a6c Eobj: Added eina magic to API functions.
SVN revision: 70410
2012-04-23 08:10:04 +00:00
Tom Hacohen e8348bf802 Eobj: Fixed windows support.
DAMN, Windows is broken...
Thanks to vtorri.

SVN revision: 70409
2012-04-23 08:10:00 +00:00
Tom Hacohen b5a1df1270 Eobj: Added EOBJ_CALLBACK_STOP/CONTINUE macros.
SVN revision: 70408
2012-04-23 08:09:58 +00:00
Tom Hacohen e0f6adbea6 Eobj: Add a convenience macro for defining the class_get functions.
This macro makes the code a tad simpler, but more importantly, makes it
easier for us to be thread safe, or more corrctly, easier for us the
make user code thread safe.

SVN revision: 70407
2012-04-23 08:09:54 +00:00
Tom Hacohen 1390200ede Eobj: Fixed issue with FindEina.cmake and things using it.
SVN revision: 70406
2012-04-23 08:09:49 +00:00
Tom Hacohen a5742a341c Eobj: Allocate the data blob at the end of the object.
This replaces the obj->data_blob pointer. Hopefully will be better.

SVN revision: 70405
2012-04-23 08:09:45 +00:00
Tom Hacohen 84a698c972 Eobj: A bit of code cleanup.
SVN revision: 70404
2012-04-23 08:09:42 +00:00
Tom Hacohen b126854a86 Eobj: Added EINA_LIKELY/UNLIKELY to eobj_data_get.
SVN revision: 70403
2012-04-23 08:09:40 +00:00
Tom Hacohen e066c0041c Eobj: Add a couple of funcs_set tests and fixed a bug related.
SVN revision: 70402
2012-04-23 08:09:37 +00:00
Tom Hacohen 95eaccb0cc Eobj: s/__UNUSED__/EINA_UNUSED/ I had no idea that exists.
SVN revision: 70332
2012-04-19 11:30:17 +00:00
Tom Hacohen 9fee446cc1 Eobj: Fixed naming of the internal con/destructor wrapper.
It's a lot less confusing now.

SVN revision: 70331
2012-04-19 11:30:12 +00:00
Tom Hacohen bfe38419bd Eobj: Enforce some interface restrictions.
SVN revision: 70330
2012-04-19 11:30:10 +00:00
Tom Hacohen a59a972f8b Eobj: Change obj of eobj_data_get to be const.
Thanks to Daniel Zaoui for the report.

SVN revision: 70325
2012-04-19 08:56:29 +00:00
Tom Hacohen 11361eae41 Eobj: Added mixin data support.
SVN revision: 70324
2012-04-19 08:52:25 +00:00
Tom Hacohen c2e55db47d Eobj: Added forgotten docs to eobj_xref/xunref.
SVN revision: 70323
2012-04-19 08:52:22 +00:00
Tom Hacohen 965952c3a5 Eobj: Improved tests.
And one cosmetic change.

SVN revision: 70322
2012-04-19 08:52:18 +00:00