other_color?other_color->id:NULL,
other_color?other_color->id:0,
strict_preproc(rsc_to_rsc_t *constraint, GListPtr *colors, GListPtr resources){	resource_t *lh_resource = constraint->rsc_lh;	resource_t *rh_resource = constraint->rsc_rh;	color_t *other_color = constraint->rsc_rh->color;	color_t *local_color = NULL;		float max_pri = lh_resource->effective_priority;	float factor = 2.0;	switch(constraint->strength) {		case pecs_ignore:			break;		case pecs_startstop:			break;		case pecs_must:			if(max_pri < rh_resource->effective_priority) {				max_pri = rh_resource->effective_priority;			}			lh_resource->effective_priority = max_pri;			rh_resource->effective_priority = max_pri;			break;					case pecs_should:		case pecs_should_not:			if(constraint->variant != same_node) {				break;			} else if(constraint->rsc_rh->provisional == FALSE				&& constraint->rsc_lh->provisional) {				local_color = add_color(lh_resource, other_color);				if(local_color == NULL) {					crm_err("Couldnt add color %d to %s",						other_color?other_color->id:NULL,						lh_resource->id);					break;				}				if(constraint->strength == pecs_should_not) {					factor = 1 / factor;					create_color(colors, lh_resource, NULL);				}								// x * should * should_not = x				local_color->local_weight = 					local_color->local_weight * factor;				/* 			} else if(constraint->rsc_lh->provisional == FALSE *//* 				&& constraint->rsc_rh->provisional) { *//* 				add_color(constraint->rsc_rh, constraint->rsc_lh->color); */			} 						break;					case pecs_must_not:			if(constraint->variant != same_node) {				break;			} else if(constraint->rsc_rh->provisional) {				break;			} else if(local_color != NULL) {				lh_resource->candidate_colors = g_list_remove(					lh_resource->candidate_colors, local_color);								crm_debug_action(					print_color(						"Removed",local_color,FALSE));								crm_free(local_color);			}			break;	}	return TRUE;}