summaryrefslogtreecommitdiff
path: root/type.cpp
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2022-01-13 11:01:36 -0500
committerPeter LaFosse <peter@vector35.com>2022-01-13 11:06:31 -0500
commit0444f19299b05c0e9feada89c9ef487e59b6cfcc (patch)
treee2f95222414ecff96011b436aecbc4f72457986c /type.cpp
parentc98cd06dfd09a1489ea8d0ac315b743c3b213639 (diff)
Allow the creation of const/volatile NTRs
Diffstat (limited to 'type.cpp')
-rw-r--r--type.cpp34
1 files changed, 28 insertions, 6 deletions
diff --git a/type.cpp b/type.cpp
index bbc1c233..6762a21b 100644
--- a/type.cpp
+++ b/type.cpp
@@ -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));
}