MCPcopy Create free account
hub / github.com/apache/fory / writeUCS2

Function writeUCS2

javascript/packages/hps/src/fastcall.cc:68–89  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66enum Encoding { LATIN1, UTF16, UTF8 };
67
68uint32_t writeUCS2(v8::Isolate *isolate, uint8_t *buf, Local<String> str,
69 int flags) {
70 uint16_t *const dst = reinterpret_cast<uint16_t *>(buf);
71
72 uint16_t *const aligned_dst = AlignUp(dst, sizeof(*dst));
73 size_t nchars;
74 if (aligned_dst == dst) {
75 nchars = str->Write(isolate, dst, 0, -1, flags);
76 return nchars * sizeof(*dst);
77 }
78
79 nchars = str->Write(isolate, aligned_dst, 0, str->Length() - 1, flags);
80
81 memmove(dst, aligned_dst, nchars * sizeof(*dst));
82
83 uint16_t last;
84 str->Write(isolate, &last, nchars, 1, flags);
85 memcpy(buf + nchars * sizeof(*dst), &last, sizeof(last));
86 nchars++;
87
88 return nchars * sizeof(*dst);
89}
90
91static void serializeString(const v8::FunctionCallbackInfo<v8::Value> &args) {
92 auto isolate = args.GetIsolate();

Callers 1

serializeStringFunction · 0.85

Calls 2

AlignUpFunction · 0.85
WriteMethod · 0.65

Tested by

no test coverage detected