MCPcopy Create free account
hub / github.com/WheretIB/nullc / MemberName

Function MemberName

NULLC/includes/typeinfo.cpp:39–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37 return getTypeID(memberList[exType.memberOffset + member]);
38 }
39 NULLCArray MemberName(int member, int* type)
40 {
41 assert(linker);
42 NULLCArray ret;
43
44 ExternTypeInfo &exType = linker->exTypes[*type];
45 if(exType.subCat != ExternTypeInfo::CAT_CLASS)
46 {
47 nullcThrowError("typeid::memberName: type (%s) is not a class", &linker->exSymbols[exType.offsetToName]);
48 return NULLCArray();
49 }
50 if((unsigned int)member >= exType.memberCount)
51 {
52 nullcThrowError("typeid::memberName: member number illegal, type (%s) has only %d members", &linker->exSymbols[exType.offsetToName], exType.memberCount);
53 return NULLCArray();
54 }
55 char *symbols = &linker->exSymbols[0];
56 unsigned int strLength = (unsigned int)strlen(symbols + exType.offsetToName) + 1;
57 const char *memberName = symbols + exType.offsetToName + strLength;
58 for(int n = 0; n < member; n++)
59 {
60 strLength = (unsigned int)strlen(memberName) + 1;
61 memberName += strLength;
62 }
63
64 ret.ptr = (char*)memberName;
65 ret.len = (unsigned int)strlen(memberName) + 1;
66 return ret;
67 }
68 NULLCRef MemberByIndex(NULLCRef obj, int member)
69 {
70 assert(linker);

Callers

nothing calls this directly

Calls 3

assertFunction · 0.85
nullcThrowErrorFunction · 0.50
NULLCArrayClass · 0.50

Tested by

no test coverage detected