43 lines
836 B
C++
43 lines
836 B
C++
#include "interop.h"
|
|
|
|
#include <QStringList>
|
|
|
|
Interop::Interop()
|
|
{
|
|
|
|
}
|
|
|
|
GoString Interop::toGoString_WeakRef(QByteArray *qba) {
|
|
return GoString{qba->data(), qba->length()};
|
|
}
|
|
|
|
int64_t Interop::GetMagic() {
|
|
return ::GetMagic();
|
|
}
|
|
|
|
//
|
|
|
|
GoSliceManagedWrapper::GoSliceManagedWrapper(const QList<QByteArray>& qsl) :
|
|
rawStrings(),
|
|
slice(),
|
|
strings(nullptr)
|
|
{
|
|
rawStrings.reserve(qsl.size());
|
|
strings = new GoString[qsl.size()];
|
|
|
|
for (int i = 0; i < qsl.size(); ++i) {
|
|
rawStrings.push_back( qsl.at(i) );
|
|
strings[i].p = rawStrings[i].data();
|
|
strings[i].n = rawStrings[i].size();
|
|
}
|
|
|
|
slice.data = static_cast<void*>(strings);
|
|
slice.len = qsl.size(); // * sizeof(GoString);
|
|
slice.cap = slice.len;
|
|
}
|
|
|
|
GoSliceManagedWrapper::~GoSliceManagedWrapper()
|
|
{
|
|
delete[] strings;
|
|
}
|