| 85 | } |
| 86 | |
| 87 | LString *GetString(VM &vm, intp fi, LString *buf) { |
| 88 | if (fi) { |
| 89 | auto len = Read<flatbuffers::uoffset_t, false>(vm, fi, buf); |
| 90 | auto fdata = fi + (intp)sizeof(flatbuffers::uoffset_t); |
| 91 | // Read zero terminator just to make sure all string data is in bounds. |
| 92 | Read<char, false>(vm, fdata + len, buf); |
| 93 | return vm.NewString(buf->strv().substr(fdata, len)); |
| 94 | } else { |
| 95 | return vm.NewString(0); |
| 96 | } |
| 97 | } |
| 98 | |
| 99 | Value ParseSchemas(VM &vm, flatbuffers::Parser &parser, const Value &schema, |
| 100 | const Value &includes) { |
no test coverage detected