summaryrefslogtreecommitdiff
path: root/plugins/warp/api/warp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/warp/api/warp.cpp')
-rw-r--r--plugins/warp/api/warp.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins/warp/api/warp.cpp b/plugins/warp/api/warp.cpp
index c051e3c7..debbbc00 100644
--- a/plugins/warp/api/warp.cpp
+++ b/plugins/warp/api/warp.cpp
@@ -353,7 +353,7 @@ bool Container::RemoveTypes(const Source &source, const std::vector<TypeGUID> &g
return result;
}
-void Container::FetchFunctions(const Target &target, const std::vector<FunctionGUID> &guids, const std::vector<SourceTag> &tags) const
+void Container::FetchFunctions(const Target &target, const std::vector<FunctionGUID> &guids, const std::vector<SourceTag> &tags, const std::vector<ConstraintGUID> &constraints) const
{
size_t count = guids.size();
BNWARPFunctionGUID *apiGuids = new BNWARPFunctionGUID[count];
@@ -363,9 +363,14 @@ void Container::FetchFunctions(const Target &target, const std::vector<FunctionG
const char** rawTags = new const char*[tagCount];
for (size_t i = 0; i < tagCount; i++)
rawTags[i] = tags[i].c_str();
- BNWARPContainerFetchFunctions(m_object, target.m_object, rawTags, tagCount, apiGuids, count);
+ size_t constraintCount = constraints.size();
+ BNWARPConstraintGUID *apiConstraints = new BNWARPConstraintGUID[constraintCount];
+ for (size_t i = 0; i < constraintCount; i++)
+ apiConstraints[i] = *constraints[i].Raw();
+ BNWARPContainerFetchFunctions(m_object, target.m_object, rawTags, tagCount, apiGuids, count, apiConstraints, constraintCount);
delete[] apiGuids;
delete[] rawTags;
+ delete[] apiConstraints;
}
std::vector<Source> Container::GetSourcesWithFunctionGUID(const Target& target, const FunctionGUID &guid) const