5#ifndef V8_WASM_STRING_BUILDER_H_
6#define V8_WASM_STRING_BUILDER_H_
8#if !V8_ENABLE_WEBASSEMBLY
9#error This header should only be included if WebAssembly is enabled.
32 for (
char* chunk :
chunks_)
delete[] chunk;
49 void write(
const uint8_t* data,
size_t n) {
53 void write(
const char* data,
size_t n) {
87 void Grow(
size_t requested) {
89 size_t required = used + requested;
97 chunk_size = required * 2;
100 char* new_chunk =
new char[chunk_size];
101 memcpy(new_chunk,
start_, used);
126 size_t len = strlen(str);
128 memcpy(ptr, str, len);
138 sb.
write(s.data(), s.length());
143 sb.
write(s.data(), s.length());
152 static constexpr size_t kBufferSize = 10;
153 char buffer[kBufferSize];
154 char*
end = buffer + kBufferSize;
157 *(--out) =
'0' + (n % 10);
160 sb.
write(out,
static_cast<size_t>(
end - out));
166 sb << static_cast<uint32_t>(value);
168 sb <<
"-" << ((~static_cast<uint32_t>(value)) + 1);
void Grow(size_t requested)
const OnGrowth on_growth_
std::vector< char * > chunks_
const char * start() const
static constexpr size_t kStackSize
const char * cursor() const
StringBuilder(const StringBuilder &)=delete
char stack_buffer_[kStackSize]
size_t approximate_size_mb()
static constexpr size_t kChunkSize
StringBuilder(OnGrowth on_growth)
void write(const uint8_t *data, size_t n)
void write(const char *data, size_t n)
char * allocate(size_t n)
StringBuilder & operator=(const StringBuilder &)=delete
ZoneVector< RpoNumber > & result
std::ostream & operator<<(std::ostream &os, LiftoffVarState slot)
#define DCHECK_GT(v1, v2)