Exemple #1
0
void knh_dimfree(CTX ctx, void *p, const knh_dim_t *dim)
{
	size_t size = dim->capacity * dim->wsize;
	if(size > 0) {
		KNH_FREE(ctx, p, size);
		KNH_FREE(ctx, (void*)dim, sizeof(knh_dim_t));
	}
}
Exemple #2
0
static void knh_actor_free(CTX ctx, knh_actor_t *a)
{
	if (a->name != NULL) {
		KNH_FREE(ctx, (char *)a->name, strlen(a->name));
		a->name = NULL;
	}
	if (a->host != NULL) {
		KNH_FREE(ctx, (char *)a->host, strlen(a->host));
		a->host = NULL;
	}
	KNH_FREE(ctx, a, sizeof(knh_actor_t));
}
Exemple #3
0
static void kGitOid_free(CTX ctx, kRawPtr *po)
{
    if (po->rawptr != NULL) {
        KNH_FREE(ctx, po->rawptr, sizeof(git_oid));
        po->rawptr = NULL;
    }
}
KNHAPI(void) knh_ResultSet_initColumn(Ctx *ctx, knh_ResultSet_t *o, size_t column_size)
{
	size_t i;
	if(DP(o)->column_size != 0) {
		for(i = 0; i < DP(o)->column_size; i++) {
			KNH_FINALv(ctx, DP(o)->column[i].name);
		}
		KNH_FREE(ctx, DP(o)->column, sizeof(knh_dbschema_t) * DP(o)->column_size);
		DP(o)->column = NULL;
		if(DP(o)->qcur != NULL) {
			DP(o)->qcurfree(DP(o)->qcur);
			DP(o)->qcur = NULL;
		}
	}
	DP(o)->column_size = column_size;
	if(column_size > 0) {
		DP(o)->column = (knh_dbschema_t*)KNH_MALLOC(ctx, sizeof(knh_dbschema_t) * DP(o)->column_size);
		for(i = 0; i < DP(o)->column_size; i++) {
			DP(o)->column[i].type = CLASS_Object;
			KNH_INITv(DP(o)->column[i].name, TS_EMPTY);
			DP(o)->column[i].start = 0;
			DP(o)->column[i].len = 0;
		}
	}
	DP(o)->count = 0;
}
Exemple #5
0
static void ClibGlue_free(CTX ctx, void *ptr)
{
  if (ptr != NULL) {
	knh_ClibGlue_t *cglue = (knh_ClibGlue_t*)ptr;
	KNH_FREE(ctx, cglue, sizeof(knh_ClibGlue_t));
	ptr = NULL;
  }
}
Exemple #6
0
void knh_Bytes_dispose(CTX ctx, knh_Bytes_t *ba)
{
	if(ba->dim->capacity > 0) {
		//DBG_P("dispose %p %p size=%ld,%ld", ba, ba->bu.ubuf, ba->bu.len, ba->dim->capacity);
		KNH_FREE(ctx, ba->bu.ubuf, ba->dim->capacity);
		ba->bu.ubuf = NULL;
		ba->bu.len = 0;
		((knh_dim_t*)ba->dim)->capacity = 0;
	}
}
Exemple #7
0
static void Clib_free(CTX ctx, knh_RawPtr_t *po)
{
	if (po->rawptr != NULL) {
	  knh_CLib_t *clib = (knh_CLib_t*)po->rawptr;
	  if (clib->handler != NULL) {
		knh_dlclose(ctx, clib->handler);
	  }
	  KNH_FREE(ctx, clib, sizeof(knh_CLib_t));
	  po->rawptr = NULL;
	}
}
Exemple #8
0
static
void knh_Stmt_terms_expand(Ctx *ctx, Stmt *o)
{
    size_t i, newcapacity = DP(o)->capacity * 2;
    Object **newterms = (Object**)KNH_MALLOC(ctx, sizeof(Object*) * newcapacity);
    knh_memcpy(newterms, DP(o)->terms, sizeof(Object*) * DP(o)->capacity);
    for(i = DP(o)->capacity; i < newcapacity; i++) {
        KNH_INITv(newterms[i], KNH_NULL);
    }
    KNH_FREE(ctx, DP(o)->terms, sizeof(Object*) * DP(o)->capacity);
    DP(o)->terms = newterms;
    DP(o)->capacity = newcapacity;
    KNH_ASSERT(DP(o)->size < DP(o)->capacity);
}
Exemple #9
0
static knh_hmap_t *hmap_rehash(CTX ctx, knh_hmap_t *hmap)
{
	size_t i, newhmax = hmap->hmax * 2 + 1;
	knh_hentry_t **hentry = knh_map_hentry(hmap);
	knh_hentry_t **newhentry = (knh_hentry_t**)KNH_REALLOC(ctx, hmap->DBGNAME, NULL, 0, newhmax, sizeof(knh_hentry_t*));
	for(i = 0; i < hmap->hmax; i++) {
		knh_hentry_t *e = hentry[i];
		while(e != NULL) {
			knh_hentry_t *p = e;
			knh_hashcode_t ni = p->hcode % newhmax;
			e = e->next;
			p->next = newhentry[ni];
			newhentry[ni] = p;
		}
	}
	KNH_FREE(ctx, hentry, hmap->hmax * sizeof(knh_hentry_t*));
	hmap->hentry = newhentry;
	hmap->hmax = newhmax;
	hmap->factor = KNH_HASH_FACTOR(newhmax);
	return hmap;
}
static void knh_Bytes_expands(Ctx *ctx, knh_Bytes_t *ba, size_t newsize)
{
	if(ba->capacity == 0) {
		newsize = knh_good_size(newsize);
		ba->bu.ubuf = (knh_uchar_t*)KNH_MALLOC(ctx, newsize);
		ba->capacity = newsize;
	}
	else {
		knh_uchar_t *buf = ba->bu.ubuf;
		size_t capacity = ba->capacity;
		knh_uchar_t *newa = (knh_uchar_t*)KNH_MALLOC(ctx, newsize);
		knh_memcpy(newa, buf, capacity);
		knh_bzero(&newa[capacity], newsize - capacity);
		ba->bu.ubuf = newa;
		ba->capacity = newsize;
		KNH_FREE(ctx, buf, capacity);
		if(unlikely(ctx->bufa == ba)) {
			KNH_SYSLOG(ctx, LOG_INFO, "ExtendedContextBuffer", "*newsize=%ld, pointer=(%p => %p)", newsize, buf, newa);
			knh_Bytes_checkstack(ctx, buf, buf + ba->bu.len, newa);
		}
	}
}