diff options
| author | Peter LaFosse <peter@vector35.com> | 2022-01-13 11:01:36 -0500 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2022-01-13 11:06:31 -0500 |
| commit | 0444f19299b05c0e9feada89c9ef487e59b6cfcc (patch) | |
| tree | e2f95222414ecff96011b436aecbc4f72457986c /type.cpp | |
| parent | c98cd06dfd09a1489ea8d0ac315b743c3b213639 (diff) | |
Allow the creation of const/volatile NTRs
Diffstat (limited to 'type.cpp')
| -rw-r--r-- | type.cpp | 34 |
1 files changed, 28 insertions, 6 deletions
@@ -707,9 +707,17 @@ Ref<Type> Type::StructureType(Structure* strct) } -Ref<Type> Type::NamedType(NamedTypeReference* ref, size_t width, size_t align) +Ref<Type> Type::NamedType(NamedTypeReference* ref, size_t width, size_t align, const Confidence<bool>& cnst, const Confidence<bool>& vltl) { - return new Type(BNCreateNamedTypeReference(ref->GetObject(), width, align)); + BNBoolWithConfidence cnstConf; + cnstConf.value = cnst.GetValue(); + cnstConf.confidence = cnst.GetConfidence(); + + BNBoolWithConfidence vltlConf; + vltlConf.value = vltl.GetValue(); + vltlConf.confidence = vltl.GetConfidence(); + + return new Type(BNCreateNamedTypeReference(ref->GetObject(), width, align, &cnstConf, &vltlConf)); } @@ -1369,15 +1377,29 @@ TypeBuilder TypeBuilder::StructureType(StructureBuilder* strct) } -TypeBuilder TypeBuilder::NamedType(NamedTypeReference* ref, size_t width, size_t align) +TypeBuilder TypeBuilder::NamedType(NamedTypeReference* ref, size_t width, size_t align, const Confidence<bool>& cnst, const Confidence<bool>& vltl) { - return TypeBuilder(BNCreateNamedTypeReferenceBuilder(ref->GetObject(), width, align)); + BNBoolWithConfidence cnstConf; + cnstConf.value = cnst.GetValue(); + cnstConf.confidence = cnst.GetConfidence(); + + BNBoolWithConfidence vltlConf; + vltlConf.value = vltl.GetValue(); + vltlConf.confidence = vltl.GetConfidence(); + return TypeBuilder(BNCreateNamedTypeReferenceBuilder(ref->GetObject(), width, align, &cnstConf, &vltlConf)); } -TypeBuilder TypeBuilder::NamedType(NamedTypeReferenceBuilder* ref, size_t width, size_t align) +TypeBuilder TypeBuilder::NamedType(NamedTypeReferenceBuilder* ref, size_t width, size_t align, const Confidence<bool>& cnst, const Confidence<bool>& vltl) { - return TypeBuilder(BNCreateNamedTypeReferenceBuilderWithBuilder(ref->GetObject(), width, align)); + BNBoolWithConfidence cnstConf; + cnstConf.value = cnst.GetValue(); + cnstConf.confidence = cnst.GetConfidence(); + + BNBoolWithConfidence vltlConf; + vltlConf.value = vltl.GetValue(); + vltlConf.confidence = vltl.GetConfidence(); + return TypeBuilder(BNCreateNamedTypeReferenceBuilderWithBuilder(ref->GetObject(), width, align, &cnstConf, &vltlConf)); } |
