43 lines
838 B
C++
43 lines
838 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(QStringList *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).toUtf8() );
|
|
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;
|
|
}
|