pe_free_shallow(minus);
choose_color(resource_t *lh_resource){	int lpc = 0;	if(lh_resource->runnable == FALSE) {		lh_resource->color = find_color(			lh_resource->candidate_colors, no_color);		lh_resource->provisional = FALSE;	}	if(lh_resource->provisional == FALSE) {		return !lh_resource->provisional;	}		GListPtr sorted_colors = g_list_sort(		lh_resource->candidate_colors, sort_color_weight);		lh_resource->candidate_colors = sorted_colors;		crm_verbose("Choose a color from %d possibilities",		    g_list_length(sorted_colors));		slist_iter(		this_color, color_t, lh_resource->candidate_colors, lpc,		if(this_color == NULL) {			crm_err("color was NULL");			continue;					} else if(lh_resource->effective_priority		   < this_color->details->highest_priority) {			crm_debug("minus");			// lh_resource->priority < this_color->priority			GListPtr minus = node_list_minus(				this_color->details->candidate_nodes, 				lh_resource->allowed_nodes, TRUE);			if(g_list_length(minus) > 0) {				lh_resource->color = this_color;				lh_resource->provisional = FALSE;				break;			}			pe_free_shallow(minus);					} else {			crm_debug("intersection");			GListPtr intersection = node_list_and(				this_color->details->candidate_nodes, 				lh_resource->allowed_nodes, TRUE);			   			if(g_list_length(intersection) != 0) {				GListPtr old_list =					this_color->details->candidate_nodes;								pe_free_shallow(old_list);								this_color->details->candidate_nodes =					intersection;								lh_resource->color = this_color;				lh_resource->provisional = FALSE;				break;			} else {				pe_free_shallow(intersection);			}		}		);	return !lh_resource->provisional;}