Unknown opcodes were truncated by the C wrapper
Thanks @alcomposer for the patch Fixes #18
This commit is contained in:
parent
2c8a286e37
commit
693a2008a9
1 changed files with 4 additions and 5 deletions
|
|
@ -222,20 +222,19 @@ char* sfizz_get_unknown_opcodes(sfizz_synth_t* synth)
|
|||
const auto unknownOpcodes = self->getUnknownOpcodes();
|
||||
int totalLength = 0;
|
||||
for (auto& opcode: unknownOpcodes)
|
||||
totalLength += opcode.length();
|
||||
totalLength += opcode.length() + 1;
|
||||
|
||||
if (totalLength == 0)
|
||||
return nullptr;
|
||||
|
||||
auto opcodeList = (char *)std::malloc(totalLength + unknownOpcodes.size());
|
||||
auto opcodeList = (char *)std::malloc(totalLength);
|
||||
|
||||
auto listIterator = opcodeList;
|
||||
for (auto& opcode: unknownOpcodes) {
|
||||
for (auto& opcode : unknownOpcodes) {
|
||||
std::copy(opcode.begin(), opcode.end(), listIterator);
|
||||
listIterator += opcode.length();
|
||||
*listIterator++ = ',';
|
||||
*listIterator++ = (opcode == *unknownOpcodes.rbegin()) ? '\0' : ',';
|
||||
}
|
||||
opcodeList[totalLength] = '\0';
|
||||
return opcodeList;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue