edje_signal: reduce member count when deleted edje_signal_callback is found 19/139119/5
authorSungtaek Hong <sth253.hong@samsung.com>
Mon, 17 Jul 2017 10:28:55 +0000 (19:28 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Tue, 10 Oct 2017 11:10:38 +0000 (11:10 +0000)
commit691b5452ba2938eb215568cc6720508120e2a380
tree263009ec712d7ccb57cd829182707d9cffdd370d
parentb486e9779f723b6b446edac8119201358f62fdb8
edje_signal: reduce member count when deleted edje_signal_callback is found

    Summary:
     - when deleted callback is found _edje_signal_callback_move_last() is called
       in order to pack match array.
     - during _edje_signal_callback_move_last() index skips when another deleted
       callback is found, but does not reduce members_count.
     - this duplicates a remaining callback and calls the callback twice.

    Test Plan:
    1. add multiple edje_signal_callback by edje_object_signal_callback_add()
                  which have the same source, signal, func but different data.
               2. delete first and last callback by
                  edje_object_signal_callback_del/edje_object_signal_callback_del_full.
               3. emit edje_signal.
               4. observe one callback is called twice.

    Reviewers: SanghyeonLee, conr2d, jpeg

    Subscribers: cedric, jpeg

    Differential Revision: https://phab.enlightenment.org/D4985

Change-Id: Ie6c8f2f05c7c4bdeb1ed692960588ab0b7244bfb
Signed-off-by: Sungtaek Hong <sth253.hong@samsung.com>
src/lib/edje/edje_signal.c