|
| Decoder (const uint8_t *start, const uint8_t *end, uint32_t buffer_offset=0) |
|
| Decoder (const base::Vector< const uint8_t > bytes, uint32_t buffer_offset=0) |
|
| Decoder (const uint8_t *start, const uint8_t *pc, const uint8_t *end, uint32_t buffer_offset=0) |
|
virtual | ~Decoder ()=default |
|
template<typename ValidationTag > |
uint8_t | read_u8 (const uint8_t *pc, Name< ValidationTag > msg="expected 1 byte") |
|
template<typename ValidationTag > |
uint16_t | read_u16 (const uint8_t *pc, Name< ValidationTag > msg="expected 2 bytes") |
|
template<typename ValidationTag > |
uint32_t | read_u32 (const uint8_t *pc, Name< ValidationTag > msg="expected 4 bytes") |
|
template<typename ValidationTag > |
uint64_t | read_u64 (const uint8_t *pc, Name< ValidationTag > msg="expected 8 bytes") |
|
template<typename ValidationTag > |
std::pair< uint32_t, uint32_t > | read_u32v (const uint8_t *pc, Name< ValidationTag > name="LEB32") |
|
template<typename ValidationTag > |
std::pair< int32_t, uint32_t > | read_i32v (const uint8_t *pc, Name< ValidationTag > name="signed LEB32") |
|
template<typename ValidationTag > |
std::pair< uint64_t, uint32_t > | read_u64v (const uint8_t *pc, Name< ValidationTag > name="LEB64") |
|
template<typename ValidationTag > |
std::pair< int64_t, uint32_t > | read_i64v (const uint8_t *pc, Name< ValidationTag > name="signed LEB64") |
|
template<typename ValidationTag > |
std::pair< int64_t, uint32_t > | read_i33v (const uint8_t *pc, Name< ValidationTag > name="signed LEB33") |
|
template<typename ValidationTag > |
std::pair< WasmOpcode, uint32_t > | read_prefixed_opcode (const uint8_t *pc, Name< ValidationTag > name="prefixed opcode") |
|
uint8_t | consume_u8 (const char *name="uint8_t") |
|
uint8_t | consume_u8 (const char *name, ITracer *tracer) |
|
uint16_t | consume_u16 (const char *name="uint16_t") |
|
uint32_t | consume_u32 (const char *name, ITracer *tracer) |
|
uint32_t | consume_u32v (const char *name="var_uint32") |
|
uint32_t | consume_u32v (const char *name, ITracer *tracer) |
|
int32_t | consume_i32v (const char *name="var_int32") |
|
uint64_t | consume_u64v (const char *name, ITracer *tracer) |
|
int64_t | consume_i64v (const char *name="var_int64") |
|
void | consume_bytes (uint32_t size, const char *name="skip") |
|
void | consume_bytes (uint32_t size, const char *name, ITracer *tracer) |
|
uint32_t | available_bytes () const |
|
bool | checkAvailable (uint32_t size) |
|
void V8_NOINLINE V8_PRESERVE_MOST | error (const char *msg) |
|
void V8_NOINLINE V8_PRESERVE_MOST | error (const uint8_t *pc, const char *msg) |
|
void V8_NOINLINE V8_PRESERVE_MOST | error (uint32_t offset, const char *msg) |
|
template<typename... Args> |
void V8_NOINLINE V8_PRESERVE_MOST | errorf (const char *format, Args... args) |
|
template<typename... Args> |
void V8_NOINLINE V8_PRESERVE_MOST | errorf (const uint8_t *pc, const char *format, Args... args) |
|
template<typename... Args> |
void V8_NOINLINE V8_PRESERVE_MOST | errorf (uint32_t offset, const char *format, Args... args) |
|
virtual void | onFirstError () |
|
void | traceByteRange (const uint8_t *start, const uint8_t *end) |
|
void | traceOffEnd () |
|
template<typename T , typename R = std::decay_t<T>> |
Result< R > | toResult (T &&val) |
|
void | Reset (const uint8_t *start, const uint8_t *end, uint32_t buffer_offset=0) |
|
void | Reset (base::Vector< const uint8_t > bytes, uint32_t buffer_offset=0) |
|
bool | ok () const |
|
bool | failed () const |
|
bool | more () const |
|
const WasmError & | error () const |
|
const uint8_t * | start () const |
|
const uint8_t * | pc () const |
|
uint32_t V8_INLINE | position () const |
|
uint32_t V8_INLINE | pc_offset (const uint8_t *pc) const |
|
uint32_t | pc_offset () const |
|
uint32_t | buffer_offset () const |
|
uint32_t | GetBufferRelativeOffset (uint32_t offset) const |
|
const uint8_t * | end () const |
|
void | set_end (const uint8_t *end) |
|
bool | lookahead (int offset, uint8_t expected) |
|
|
void V8_NOINLINE | PRINTF_FORMAT (3, 4) verrorf(uint32_t offset |
|
| va_start (args, format) |
|
| va_end (args) |
|
| CHECK_LT (0, len) |
|
| onFirstError () |
|
template<typename IntType , typename ValidationTag > |
IntType | read_little_endian (const uint8_t *pc, Name< ValidationTag > msg) |
|
template<typename IntType , TraceFlag trace> |
IntType | consume_little_endian (const char *name) |
|
template<typename IntType , typename ValidationTag , TraceFlag trace, size_t size_in_bits = 8 * sizeof(IntType)> |
V8_INLINE std::pair< IntType, uint32_t > | read_leb (const uint8_t *pc, Name< ValidationTag > name="varint") |
|
template<typename IntType , typename ValidationTag , TraceFlag trace, size_t size_in_bits = 8 * sizeof(IntType)> |
V8_NOINLINE V8_PRESERVE_MOST std::pair< IntType, uint32_t > | read_leb_slowpath (const uint8_t *pc, Name< ValidationTag > name) |
|
template<typename IntType , typename ValidationTag , TraceFlag trace, size_t size_in_bits, int byte_index> |
V8_INLINE std::pair< IntType, uint32_t > | read_leb_tail (const uint8_t *pc, Name< ValidationTag > name, IntType intermediate_result) |
|
Definition at line 88 of file decoder.h.