| 2047 | } |
| 2048 | |
| 2049 | BfPrimitiveType* BfTypeInstance::GetDiscriminatorType(int* outDataIdx) |
| 2050 | { |
| 2051 | BF_ASSERT(IsPayloadEnum()); |
| 2052 | auto& fieldInstance = mFieldInstances.back(); |
| 2053 | BF_ASSERT(fieldInstance.GetFieldDef() == NULL); |
| 2054 | |
| 2055 | if (fieldInstance.mResolvedType == NULL) |
| 2056 | { |
| 2057 | BF_ASSERT(IsIncomplete()); |
| 2058 | // Use Int64 as a placeholder until we determine the correct type... |
| 2059 | return mModule->GetPrimitiveType(BfTypeCode_Int64); |
| 2060 | } |
| 2061 | |
| 2062 | BF_ASSERT(fieldInstance.mResolvedType != NULL); |
| 2063 | BF_ASSERT(fieldInstance.mResolvedType->IsPrimitiveType()); |
| 2064 | if (outDataIdx != NULL) |
| 2065 | *outDataIdx = fieldInstance.mDataIdx; |
| 2066 | return (BfPrimitiveType*)fieldInstance.mResolvedType; |
| 2067 | } |
| 2068 | |
| 2069 | void BfTypeInstance::GetUnderlyingArray(BfType*& type, int& size, bool& isVector) |
| 2070 | { |
no test coverage detected