diff options
Diffstat (limited to 'src/pdabuild.cc')
-rw-r--r-- | src/pdabuild.cc | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/pdabuild.cc b/src/pdabuild.cc index c8a55dc7..62c66e35 100644 --- a/src/pdabuild.cc +++ b/src/pdabuild.cc @@ -1573,19 +1573,25 @@ void Compiler::makeRuntimeData() for ( NamespaceList::Iter nspace = namespaceList; nspace.lte(); nspace++ ) { for ( GenericList::Iter gen = nspace->genericList; gen.lte(); gen++ ) { runtimeData->genericInfo[gen->id].type = gen->typeId; - runtimeData->genericInfo[gen->id].typeArg = gen->elUt->typeId; - runtimeData->genericInfo[gen->id].keyType = gen->keyUt != 0 ? - gen->keyUt->typeId : 0; - runtimeData->genericInfo[gen->id].keyOffset = 0; - runtimeData->genericInfo[gen->id].parserId = - gen->typeId == GEN_PARSER ? gen->elUt->langEl->parserId : -1; + + runtimeData->genericInfo[gen->id].elType = + gen->elUt->typeId; + runtimeData->genericInfo[gen->id].elStructId = + ( gen->typeId == GEN_VMAP || gen->typeId == GEN_VLIST ) ? + gen->elUt->structEl->id : -1; runtimeData->genericInfo[gen->id].elOffset = gen->el != 0 ? gen->el->offset : -1; - runtimeData->genericInfo[gen->id].elStructId = - gen->typeId == GEN_VMAP ? gen->elUt->structEl->id : -1; - runtimeData->genericInfo[gen->id].valueType = gen->valueUt != 0 ? - gen->valueUt->typeId : 0; + + runtimeData->genericInfo[gen->id].keyType = + gen->keyUt != 0 ? gen->keyUt->typeId : 0; + runtimeData->genericInfo[gen->id].keyOffset = 0; + + runtimeData->genericInfo[gen->id].valueType = + gen->valueUt != 0 ? gen->valueUt->typeId : 0; runtimeData->genericInfo[gen->id].valueOffset = 0; + + runtimeData->genericInfo[gen->id].parserId = + gen->typeId == GEN_PARSER ? gen->elUt->langEl->parserId : -1; } } |