Cancel dependents only when the request itself is
authorsachiel <sachiel@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 17 Jul 2012 14:22:52 +0000 (14:22 +0000)
committersachiel <sachiel@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 17 Jul 2012 14:22:52 +0000 (14:22 +0000)
 cancelled

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@73982 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/evas_cserve2_requests.c

index accd460..61bb544 100644 (file)
@@ -207,12 +207,6 @@ cserve2_request_cancel(Font_Request *req, Client *client, Error_Type err)
           }
      }
 
-   if (req->dependency)
-     req->dependency->dependents = eina_list_remove(
-        req->dependency->dependents, req);
-
-   _request_dependents_cancel(req, err);
-
    // TODO: When we have speculative preload, there may be no waiters,
    // so we need a flag or something else to make things still load.
    if ((!req->waiters) && (!req->processing))
@@ -222,6 +216,13 @@ cserve2_request_cancel(Font_Request *req, Client *client, Error_Type err)
         // TODO: If the request is being processed, it can't be deleted. Must
         // be marked as delete_me instead.
         req->funcs->msg_free(req->msg, req->data);
+
+        if (req->dependency)
+          req->dependency->dependents = eina_list_remove(
+             req->dependency->dependents, req);
+
+        _request_dependents_cancel(req, err);
+
         free(req);
      }