afb-session: Fix bugs
[src/app-framework-binder.git] / src / afb-session.c
index c63c6c4..1e3f508 100644 (file)
@@ -475,6 +475,7 @@ struct afb_session *afb_session_addref(struct afb_session *session)
 {
        if (session != NULL) {
                afb_hook_session_addref(session);
+               session_lock(session);
                session->refcount++;
                session_unlock(session);
        }
@@ -487,9 +488,9 @@ void afb_session_unref(struct afb_session *session)
        if (session == NULL)
                return;
 
-       session_lock(session);
        afb_hook_session_unref(session);
-       if (--session->refcount) {
+       session_lock(session);
+       if (!--session->refcount) {
                if (session->autoclose)
                        session_close(session);
                if (session->notinset) {