View | Details | Raw Unified
Collapse All | Expand All

(-) libgamin/gam_data.c (-35 / +22 lines)
 Lines 631-636    Link Here 
    g_list_free(children);
    g_list_free(children);
}
}
static void
unregister_node (GamNode * node)
{
    if (missing_resources != NULL) {
       	gam_poll_remove_missing(node);
    }
    if (busy_resources != NULL) {
        gam_poll_remove_busy(node);
    }
    if (all_resources != NULL) {
        all_resources = g_list_remove(all_resources, node);
    }
}
static gboolean
static gboolean
remove_directory_subscription(GamNode * node, GamSubscription * sub)
remove_directory_subscription(GamNode * node, GamSubscription * sub)
{
{
 Lines 650-661    Link Here 
        if ((!gam_node_get_subscriptions(child)) && (remove_dir) &&
        if ((!gam_node_get_subscriptions(child)) && (remove_dir) &&
            (!gam_tree_has_children(tree, child))) {
            (!gam_tree_has_children(tree, child))) {
            if (missing_resources != NULL) {
            unregister_node (child);
                gam_poll_remove_missing(child);
            }
            if (busy_resources != NULL) {
                gam_poll_remove_busy(child);
            }
            gam_tree_remove(tree, child);
            gam_tree_remove(tree, child);
        } else {
        } else {
            remove_dir = FALSE;
            remove_dir = FALSE;
 Lines 790-804    Link Here 
                  "prune_tree: node %s\n", gam_node_get_path(node));
                  "prune_tree: node %s\n", gam_node_get_path(node));
        parent = gam_node_parent(node);
        parent = gam_node_parent(node);
        if (missing_resources != NULL) {
        unregister_node(node);
            gam_poll_remove_missing(node);
        }
        if (busy_resources != NULL) {
            gam_poll_remove_busy(node);
        }
        if (all_resources != NULL) {
            all_resources = g_list_remove(all_resources, node);
        }
        gam_tree_remove(tree, node);
        gam_tree_remove(tree, node);
        prune_tree(parent);
        prune_tree(parent);
    }
    }
 Lines 975-989    Link Here 
            if (!gam_node_get_subscriptions(node)) {
            if (!gam_node_get_subscriptions(node)) {
                GamNode *parent;
                GamNode *parent;
                if (missing_resources != NULL) {
                unregister_node (node);
                    gam_poll_remove_missing(node);
                }
                if (busy_resources != NULL) {
                    gam_poll_remove_busy(node);
                }
                if (all_resources != NULL) {
                    all_resources = g_list_remove(all_resources, node);
                }
                if (gam_tree_has_children(tree, node)) {
                if (gam_tree_has_children(tree, node)) {
                    fprintf(stderr,
                    fprintf(stderr,
                            "node %s is not dir but has children\n",
                            "node %s is not dir but has children\n",
 Lines 1004-1018    Link Here 
            if (remove_directory_subscription(node, sub)) {
            if (remove_directory_subscription(node, sub)) {
                GamNode *parent;
                GamNode *parent;
                if (missing_resources != NULL) {
                unregister_node (node);
                    gam_poll_remove_missing(node);
                }
                if (busy_resources != NULL) {
                    gam_poll_remove_busy(node);
                }
                if (all_resources != NULL) {
                    all_resources = g_list_remove(all_resources, node);
                }
                parent = gam_node_parent(node);
                parent = gam_node_parent(node);
                if (!gam_tree_has_children(tree, node)) {
                if (!gam_tree_has_children(tree, node)) {
                    gam_tree_remove(tree, node);
                    gam_tree_remove(tree, node);
 Lines 650-656    Link Here 
        return (0);
        return (0);
    }
    }
    switch (req->type) {
    switch (req->state) {
        case REQ_NONE:
        case REQ_NONE:
        case REQ_SUSPENDED:
        case REQ_SUSPENDED:
            GAM_DEBUG(DEBUG_INFO,
            GAM_DEBUG(DEBUG_INFO,
 Lines 665-671    Link Here 
                      req->type);
                      req->type);
            return (0);
            return (0);
        case REQ_INIT:
        case REQ_INIT:
            req->type = REQ_CONFIRMED;
            req->state = REQ_CONFIRMED;
        case REQ_CONFIRMED:
        case REQ_CONFIRMED:
            break;
            break;
    }
    }