Ejemplo n.º 1
0
static void KonohaClass_InitField(KonohaContext *kctx, KonohaClassVar *definedClass, KonohaClass *superClass, size_t fieldInitSize)
{
	size_t fieldsize = superClass->fieldsize + fieldInitSize;
	definedClass->cstruct_size = size64((fieldsize * sizeof(kObject *)) + sizeof(KonohaObjectHeader));
	DBG_P("superClass->fieldsize=%d, definedFieldSize=%d, cstruct_size=%d", superClass->fieldsize, fieldInitSize, definedClass->cstruct_size);
	if(fieldsize > 0) {
		definedClass->fieldItems = (KonohaClassField *)KCalloc_UNTRACE(fieldsize, sizeof(KonohaClassField));
		definedClass->fieldAllocSize = fieldsize;
		definedClass->fieldsize = superClass->fieldsize; /* supsize */
		if(superClass->fieldsize > 0) {
			memcpy(definedClass->fieldItems, superClass->fieldItems, sizeof(KonohaClassField) * superClass->fieldsize);
		}
	}
	definedClass->fnull(kctx, definedClass);  // first generation of DefaultValueAsNull
	superClass->fnull(kctx, superClass); // ensure default value of super class
	memcpy(definedClass->defaultNullValueVar_OnGlobalConstList->fieldObjectItems, superClass->defaultNullValueVar_OnGlobalConstList->fieldObjectItems, sizeof(kObject *) * superClass->fieldsize);
	definedClass->init     = ObjectField_Init;
	definedClass->reftrace = ObjectField_Reftrace;
	definedClass->superTypeId = superClass->typeId;
	definedClass->searchSuperMethodClassNULL = superClass;
	// add other functions
}
Ejemplo n.º 2
0
std::string StatsManager::reportPUChoices() {
	std::string returnable, size64("64;"), size32("32;"), size16("16;"), size8("8;");
	returnable = "CUSize;2Nx2N;2NxN;Nx2N;NxN;2NxnU;2NxnD;nLx2N;nRx2N;\n";

	for (int i = 0; i < 8; i++) {
		char temp[10];
		sprintf(temp,"%d;",choices64[i]);
		size64.append(temp);
		sprintf(temp,"%d;",choices32[i]);
		size32.append(temp);
		sprintf(temp,"%d;",choices16[i]);
		size16.append(temp);
		sprintf(temp,"%d;",choices8[i]);
		size8.append(temp);
	}
	returnable += size64 + "\n";
	returnable += size32 + "\n";
	returnable += size16 + "\n";
	returnable += size8 + "\n";

	return returnable;
}
Ejemplo n.º 3
0
static inline size_t initFieldSizeOfVirtualClass(KonohaClass *superClass)
{
	return size64(sizeof(KonohaObjectHeader) + (superClass->fieldsize + 4) * sizeof(kObject *)) / sizeof(kObject *);
}