Add explanation for locators ownership.

This commit is contained in:
Alejandro Cabeza Romero 2026-04-03 13:18:18 +02:00
parent 189f23bef9
commit 6a6cdb76d1
No known key found for this signature in database
GPG Key ID: DA3D14AE478030FD

View File

@ -290,13 +290,16 @@ int LogosBlockchainModule::blend_join_as_core_node(
return 4;
}
// QString is UTF-16, but the FFI requires UTF-8.
// locatorsData owns the converted buffers, while locatorsPtrs holds raw pointers into them for the FFI call.
// Using reserve() prevents reallocation, keeping the constData() pointers stable.
std::vector<QByteArray> locatorsData;
std::vector<const char*> locatorsPtrs;
locatorsData.reserve(locators.size());
locatorsPtrs.reserve(locators.size());
for (const QString& locator : locators) {
locatorsData.push_back(locator.toUtf8());
}
for (const QByteArray& data : locatorsData) {
locatorsPtrs.push_back(data.constData());
locatorsPtrs.push_back(locatorsData.back().constData());
}
auto [value, error] = ::blend_join_as_core_node(