(rawType, name)
| 938 | return new TA(buffer, data, size); |
| 939 | }name = readLatin1String(name); registerType(rawType, { name, fromWireType: decodeMemoryView, argPackAdvance: 8, readValueFromPointer: decodeMemoryView }, { ignoreDuplicateRegistrations: true }); |
| 940 | } function __embind_register_std_string(rawType, name) |
| 941 | { |
| 942 | name = readLatin1String(name); const stdStringIsUTF8 = name === 'std::string'; |
| 943 | |
| 944 | registerType(rawType, { name, fromWireType(value) |
| 945 | { |
| 946 | const length = HEAPU32[value >> 2]; let str; |
| 947 | |
| 948 | if (stdStringIsUTF8) |
| 949 | { |
| 950 | const endChar = HEAPU8[value + 4 + length]; let endCharSwap = 0; |
| 951 | |
| 952 | if (endChar != 0) { endCharSwap = endChar; HEAPU8[value + 4 + length] = 0; } let decodeStartPtr = value + 4; |
| 953 | |
| 954 | for (var i = 0; i <= length; ++i) |
| 955 | { |
| 956 | const currentBytePtr = value + 4 + i; |
| 957 | |
| 958 | if (HEAPU8[currentBytePtr] == 0) |
| 959 | { |
| 960 | const stringSegment = UTF8ToString(decodeStartPtr); |
| 961 | |
| 962 | if (str === undefined) { str = stringSegment; } |
| 963 | else { str += String.fromCharCode(0); str += stringSegment; }decodeStartPtr = currentBytePtr + 1; |
| 964 | } |
| 965 | } if (endCharSwap != 0) { HEAPU8[value + 4 + length] = endCharSwap; } |
| 966 | } |
| 967 | else |
| 968 | { |
| 969 | const a = new Array(length); |
| 970 | |
| 971 | for (var i = 0; i < length; ++i) { a[i] = String.fromCharCode(HEAPU8[value + 4 + i]); }str = a.join(''); |
| 972 | }_free(value); |
| 973 | |
| 974 | return str; |
| 975 | }, toWireType(destructors, value) |
| 976 | { |
| 977 | if (value instanceof ArrayBuffer) { value = new Uint8Array(value); } let getLength; const valueIsOfTypeString = typeof value === 'string'; |
| 978 | |
| 979 | if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { throwBindingError('Cannot pass non-string to std::string'); } if (stdStringIsUTF8 && valueIsOfTypeString) { getLength = function () { return lengthBytesUTF8(value); }; } |
| 980 | else { getLength = function () { return value.length; }; } const length = getLength(); const ptr = _malloc(4 + length + 1); |
| 981 | |
| 982 | HEAPU32[ptr >> 2] = length; if (stdStringIsUTF8 && valueIsOfTypeString) { stringToUTF8(value, ptr + 4, length + 1); } |
| 983 | else |
| 984 | if (valueIsOfTypeString) |
| 985 | { |
| 986 | for (var i = 0; i < length; ++i) |
| 987 | { |
| 988 | const charCode = value.charCodeAt(i); |
| 989 | |
| 990 | if (charCode > 255) { _free(ptr); throwBindingError('String has UTF-16 code units that do not fit in 8 bits'); }HEAPU8[ptr + 4 + i] = charCode; |
| 991 | } |
| 992 | } |
| 993 | else { for (var i = 0; i < length; ++i) { HEAPU8[ptr + 4 + i] = value[i]; } } if (destructors !== null) { destructors.push(_free, ptr); } |
| 994 | |
| 995 | return ptr; |
| 996 | }, argPackAdvance: 8, readValueFromPointer: simpleReadValueFromPointer, destructorFunction(ptr) { _free(ptr); } }); |
| 997 | } function __embind_register_std_wstring(rawType, charSize, name) |
nothing calls this directly
no test coverage detected