if (!ht->template) { for (n = 0; n < ht->callbackCount; n++) { CallbackInfo* ci = &ht->callbackInfo[n]; if (ci->dataTemplateCallbackFunction) ci->dataTemplateCallbackFunction(ci->handle, 0, ht->dataTemplate); } } else { for (n = 0; n < ht->callbackCount; n++) { CallbackInfo* ci = &ht->callbackInfo[n]; if (ci->templateCallbackFunction) ci->templateCallbackFunction(ci->handle, 0, ht->template); }
for (n = 0; n < ht->callbackCount; n++) { CallbackInfo* ci = &ht->callbackInfo[n]; if (ci->dataTemplateCallbackFunction) ci->dataTemplateCallbackFunction(ci->handle, 0, ht->dataTemplate);
void hashingAddCallbacks(Hashtable* ht, CallbackInfo handles) {	int i = ++ht->callbackCount;	ht->callbackInfo = (CallbackInfo*)realloc(ht->callbackInfo, i * sizeof(CallbackInfo));	memcpy(&ht->callbackInfo[i-1], &handles, sizeof(CallbackInfo));	/* Immediately pass the Hashtable's DataTemplate to the new Callback receiver */	int n;			if (!ht->template) {		for (n = 0; n < ht->callbackCount; n++) {			CallbackInfo* ci = &ht->callbackInfo[n];			if (ci->dataTemplateCallbackFunction) ci->dataTemplateCallbackFunction(ci->handle, 0, ht->dataTemplate);			}		} else {		for (n = 0; n < ht->callbackCount; n++) {			CallbackInfo* ci = &ht->callbackInfo[n];			if (ci->templateCallbackFunction) ci->templateCallbackFunction(ci->handle, 0, ht->template);			}		}	}