diff options
| author | Rusty Wagner <rusty@vector35.com> | 2016-12-01 18:13:54 -0500 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2016-12-01 18:13:54 -0500 |
| commit | 8c42dabe92340b4d342f3b4e7594fb70f1890e41 (patch) | |
| tree | 406a4a0e0486b00a71b3d0bb65a3dd15cdf91981 /type.cpp | |
| parent | f69430aedd957f5e8f221488cd6acb9031d3c1c1 (diff) | |
| parent | 3b719e990e3e01242918bf66d5a1fb6032517641 (diff) | |
Merge branch 'dev'
Diffstat (limited to 'type.cpp')
| -rw-r--r-- | type.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -235,6 +235,12 @@ Ref<Type> Type::StructureType(Structure* strct) } +Ref<Type> Type::UnknownNamedType(UnknownType* unknwn) +{ + return new Type(BNCreateUnknownNamedType(unknwn->GetObject())); +} + + Ref<Type> Type::EnumerationType(Architecture* arch, Enumeration* enm, size_t width, bool isSigned) { return new Type(BNCreateEnumerationType(arch->GetObject(), enm->GetObject(), width, isSigned)); @@ -277,6 +283,46 @@ void Type::SetFunctionCanReturn(bool canReturn) } +UnknownType::UnknownType(BNUnknownType* ut, vector<string> names) +{ + m_object = ut; + const char ** nameList = new const char*[names.size()]; + for (size_t i = 0; i < names.size(); i++) + { + nameList[i] = names[i].c_str(); + } + BNSetUnknownTypeName(ut, nameList, names.size()); + delete [] nameList; +} + + +void UnknownType::SetName(const vector<string>& names) +{ + const char ** nameList = new const char*[names.size()]; + for (size_t i = 0; i < names.size(); i++) + { + nameList[i] = names[i].c_str(); + } + BNSetUnknownTypeName(m_object, nameList, names.size()); + delete [] nameList; +} + + +vector<string> UnknownType::GetName() const +{ + size_t size; + char** name = BNGetUnknownTypeName(m_object, &size); + vector<string> result; + for (size_t i = 0; i < size; i++) + { + result.push_back(name[i]); + BNFreeString(name[i]); + } + delete [] name; + return result; +} + + Structure::Structure(BNStructure* s) { m_object = s; |
