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 }
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; }
static inline size_t initFieldSizeOfVirtualClass(KonohaClass *superClass) { return size64(sizeof(KonohaObjectHeader) + (superClass->fieldsize + 4) * sizeof(kObject *)) / sizeof(kObject *); }