Flutter Engine
fl_standard_message_codec.cc File Reference
#include "flutter/shell/platform/linux/public/flutter_linux/fl_standard_message_codec.h"
#include "flutter/shell/platform/linux/fl_standard_message_codec_private.h"
#include <gmodule.h>
#include <cstring>

Go to the source code of this file.

Classes

struct  _FlStandardMessageCodec
 

Functions

 G_DEFINE_TYPE (FlStandardMessageCodec, fl_standard_message_codec, fl_message_codec_get_type()) static void write_uint8(GByteArray *buffer
 
static void write_uint16 (GByteArray *buffer, uint16_t value)
 
static void write_uint32 (GByteArray *buffer, uint32_t value)
 
static void write_int32 (GByteArray *buffer, int32_t value)
 
static void write_int64 (GByteArray *buffer, int64_t value)
 
static void write_float64 (GByteArray *buffer, double value)
 
static void write_align (GByteArray *buffer, guint align)
 
static gboolean check_size (GBytes *buffer, size_t offset, size_t required, GError **error)
 
static gboolean read_align (GBytes *buffer, size_t *offset, size_t align, GError **error)
 
static const uint8_t * get_data (GBytes *buffer, size_t *offset)
 
static gboolean read_uint8 (GBytes *buffer, size_t *offset, uint8_t *value, GError **error)
 
static gboolean read_uint16 (GBytes *buffer, size_t *offset, uint16_t *value, GError **error)
 
static gboolean read_uint32 (GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
 
static FlValueread_int32_value (GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_int64_value (GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_float64_value (GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_string_value (FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_uint8_list_value (FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_int32_list_value (FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_int64_list_value (FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_float64_list_value (FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_list_value (FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
 
static FlValueread_map_value (FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
 
static GBytes * fl_standard_message_codec_encode_message (FlMessageCodec *codec, FlValue *message, GError **error)
 
static FlValuefl_standard_message_codec_decode_message (FlMessageCodec *codec, GBytes *message, GError **error)
 
static void fl_standard_message_codec_class_init (FlStandardMessageCodecClass *klass)
 
static void fl_standard_message_codec_init (FlStandardMessageCodec *self)
 
G_MODULE_EXPORT FlStandardMessageCodec * fl_standard_message_codec_new ()
 
void fl_standard_message_codec_write_size (FlStandardMessageCodec *codec, GByteArray *buffer, uint32_t size)
 
gboolean fl_standard_message_codec_read_size (FlStandardMessageCodec *codec, GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
 
gboolean fl_standard_message_codec_write_value (FlStandardMessageCodec *self, GByteArray *buffer, FlValue *value, GError **error)
 
FlValuefl_standard_message_codec_read_value (FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
 

Variables

static constexpr int kValueNull = 0
 
static constexpr int kValueTrue = 1
 
static constexpr int kValueFalse = 2
 
static constexpr int kValueInt32 = 3
 
static constexpr int kValueInt64 = 4
 
static constexpr int kValueFloat64 = 6
 
static constexpr int kValueString = 7
 
static constexpr int kValueUint8List = 8
 
static constexpr int kValueInt32List = 9
 
static constexpr int kValueInt64List = 10
 
static constexpr int kValueFloat64List = 11
 
static constexpr int kValueList = 12
 
static constexpr int kValueMap = 13
 
uint8_t value
 

Function Documentation

◆ check_size()

static gboolean check_size ( GBytes *  buffer,
size_t  offset,
size_t  required,
GError **  error 
)
static

Definition at line 77 of file fl_standard_message_codec.cc.

References FL_MESSAGE_CODEC_ERROR, FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA, and TRUE.

Referenced by read_align(), read_float64_list_value(), read_float64_value(), read_int32_list_value(), read_int32_value(), read_int64_list_value(), read_int64_value(), read_string_value(), read_uint16(), read_uint32(), read_uint8(), and read_uint8_list_value().

80  {
81  if (offset + required > g_bytes_get_size(buffer)) {
82  g_set_error(error, FL_MESSAGE_CODEC_ERROR,
83  FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA, "Unexpected end of data");
84  return FALSE;
85  }
86  return TRUE;
87 }
FlMethodResponse GError ** error
#define FL_MESSAGE_CODEC_ERROR
return TRUE
Definition: fl_view.cc:107

◆ fl_standard_message_codec_class_init()

static void fl_standard_message_codec_class_init ( FlStandardMessageCodecClass *  klass)
static

Definition at line 419 of file fl_standard_message_codec.cc.

References fl_standard_message_codec_decode_message(), and fl_standard_message_codec_encode_message().

420  {
421  FL_MESSAGE_CODEC_CLASS(klass)->encode_message =
423  FL_MESSAGE_CODEC_CLASS(klass)->decode_message =
425 }
static GBytes * fl_standard_message_codec_encode_message(FlMessageCodec *codec, FlValue *message, GError **error)
static FlValue * fl_standard_message_codec_decode_message(FlMessageCodec *codec, GBytes *message, GError **error)

◆ fl_standard_message_codec_decode_message()

static FlValue* fl_standard_message_codec_decode_message ( FlMessageCodec *  codec,
GBytes *  message,
GError **  error 
)
static

Definition at line 395 of file fl_standard_message_codec.cc.

References FL_MESSAGE_CODEC_ERROR, FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA, fl_standard_message_codec_read_value(), fl_value_ref(), and value.

Referenced by fl_standard_message_codec_class_init().

397  {
398  FlStandardMessageCodec* self =
399  reinterpret_cast<FlStandardMessageCodec*>(codec);
400 
401  size_t offset = 0;
402  g_autoptr(FlValue) value =
403  fl_standard_message_codec_read_value(self, message, &offset, error);
404  if (value == nullptr) {
405  return nullptr;
406  }
407 
408  if (offset != g_bytes_get_size(message)) {
409  g_set_error(error, FL_MESSAGE_CODEC_ERROR,
411  "Unused %zi bytes after standard message",
412  g_bytes_get_size(message) - offset);
413  return nullptr;
414  }
415 
416  return fl_value_ref(value);
417 }
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
#define FL_MESSAGE_CODEC_ERROR
uint8_t value
G_MODULE_EXPORT FlValue * fl_value_ref(FlValue *self)
Definition: fl_value.cc:335
FlValue * fl_standard_message_codec_read_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)

◆ fl_standard_message_codec_encode_message()

static GBytes* fl_standard_message_codec_encode_message ( FlMessageCodec *  codec,
FlValue message,
GError **  error 
)
static

Definition at line 380 of file fl_standard_message_codec.cc.

References fl_standard_message_codec_write_value().

Referenced by fl_standard_message_codec_class_init().

382  {
383  FlStandardMessageCodec* self =
384  reinterpret_cast<FlStandardMessageCodec*>(codec);
385 
386  g_autoptr(GByteArray) buffer = g_byte_array_new();
387  if (!fl_standard_message_codec_write_value(self, buffer, message, error)) {
388  return nullptr;
389  }
390  return g_byte_array_free_to_bytes(
391  static_cast<GByteArray*>(g_steal_pointer(&buffer)));
392 }
FlMethodResponse GError ** error
gboolean fl_standard_message_codec_write_value(FlStandardMessageCodec *self, GByteArray *buffer, FlValue *value, GError **error)

◆ fl_standard_message_codec_init()

static void fl_standard_message_codec_init ( FlStandardMessageCodec *  self)
static

Definition at line 427 of file fl_standard_message_codec.cc.

427 {}

◆ fl_standard_message_codec_new()

G_MODULE_EXPORT FlStandardMessageCodec* fl_standard_message_codec_new ( )

Definition at line 429 of file fl_standard_message_codec.cc.

Referenced by decode_error_value(), decode_message(), encode_message(), fl_standard_method_codec_init(), and TEST().

429  {
430  return static_cast<FlStandardMessageCodec*>(
431  g_object_new(fl_standard_message_codec_get_type(), nullptr));
432 }

◆ fl_standard_message_codec_read_size()

gboolean fl_standard_message_codec_read_size ( FlStandardMessageCodec *  codec,
GBytes *  buffer,
size_t *  offset,
uint32_t *  value,
GError **  error 
)

fl_standard_message_codec_read_size: : an #FlStandardMessageCodec. : buffer to read from. : (inout): read position in . : location to read size. : (allow-none): #GError location to store the error occurring, or NULL.

Reads a size field in Flutter Standard encoding.

Returns: TRUE on success.

Definition at line 448 of file fl_standard_message_codec.cc.

References read_uint16(), read_uint32(), read_uint8(), and TRUE.

Referenced by read_float64_list_value(), read_int32_list_value(), read_int64_list_value(), read_list_value(), read_map_value(), read_string_value(), and read_uint8_list_value().

452  {
453  uint8_t value8;
454  if (!read_uint8(buffer, offset, &value8, error)) {
455  return FALSE;
456  }
457 
458  if (value8 == 255) {
459  if (!read_uint32(buffer, offset, value, error)) {
460  return FALSE;
461  }
462  } else if (value8 == 254) {
463  uint16_t value16;
464  if (!read_uint16(buffer, offset, &value16, error)) {
465  return FALSE;
466  }
467  *value = value16;
468  } else {
469  *value = value8;
470  }
471 
472  return TRUE;
473 }
static gboolean read_uint16(GBytes *buffer, size_t *offset, uint16_t *value, GError **error)
FlMethodResponse GError ** error
static gboolean read_uint32(GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
static gboolean read_uint8(GBytes *buffer, size_t *offset, uint8_t *value, GError **error)
uint8_t value
return TRUE
Definition: fl_view.cc:107

◆ fl_standard_message_codec_read_value()

FlValue* fl_standard_message_codec_read_value ( FlStandardMessageCodec *  codec,
GBytes *  buffer,
size_t *  offset,
GError **  error 
)

fl_standard_message_codec_read_value: : an #FlStandardMessageCodec. : buffer to read from. : (inout): read position in . : location to read size. : (allow-none): #GError location to store the error occurring, or NULL.

Reads an FlValue in Flutter Standard encoding.

Returns: a new FlValue or NULL on error.

Definition at line 593 of file fl_standard_message_codec.cc.

References FL_MESSAGE_CODEC_ERROR, FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE, fl_value_new_bool(), fl_value_new_null(), fl_value_ref(), kValueFalse, kValueFloat64, kValueFloat64List, kValueInt32, kValueInt32List, kValueInt64, kValueInt64List, kValueList, kValueMap, kValueNull, kValueString, kValueTrue, kValueUint8List, read_float64_list_value(), read_float64_value(), read_int32_list_value(), read_int32_value(), read_int64_list_value(), read_int64_value(), read_list_value(), read_map_value(), read_string_value(), read_uint8(), read_uint8_list_value(), TRUE, and value.

Referenced by fl_standard_message_codec_decode_message(), fl_standard_method_codec_decode_method_call(), fl_standard_method_codec_decode_response(), read_list_value(), and read_map_value().

596  {
597  uint8_t type;
598  if (!read_uint8(buffer, offset, &type, error)) {
599  return nullptr;
600  }
601 
602  g_autoptr(FlValue) value = nullptr;
603  if (type == kValueNull) {
604  return fl_value_new_null();
605  } else if (type == kValueTrue) {
606  return fl_value_new_bool(TRUE);
607  } else if (type == kValueFalse) {
608  return fl_value_new_bool(FALSE);
609  } else if (type == kValueInt32) {
610  value = read_int32_value(buffer, offset, error);
611  } else if (type == kValueInt64) {
612  value = read_int64_value(buffer, offset, error);
613  } else if (type == kValueFloat64) {
614  value = read_float64_value(buffer, offset, error);
615  } else if (type == kValueString) {
616  value = read_string_value(self, buffer, offset, error);
617  } else if (type == kValueUint8List) {
618  value = read_uint8_list_value(self, buffer, offset, error);
619  } else if (type == kValueInt32List) {
620  value = read_int32_list_value(self, buffer, offset, error);
621  } else if (type == kValueInt64List) {
622  value = read_int64_list_value(self, buffer, offset, error);
623  } else if (type == kValueFloat64List) {
624  value = read_float64_list_value(self, buffer, offset, error);
625  } else if (type == kValueList) {
626  value = read_list_value(self, buffer, offset, error);
627  } else if (type == kValueMap) {
628  value = read_map_value(self, buffer, offset, error);
629  } else {
630  g_set_error(error, FL_MESSAGE_CODEC_ERROR,
632  "Unexpected standard codec type %02x", type);
633  return nullptr;
634  }
635 
636  return value == nullptr ? nullptr : fl_value_ref(value);
637 }
static constexpr int kValueInt32List
static constexpr int kValueFloat64List
static constexpr int kValueFalse
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
static constexpr int kValueTrue
FlMethodResponse GError ** error
static constexpr int kValueInt64
static constexpr int kValueFloat64
static constexpr int kValueMap
static FlValue * read_list_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
#define FL_MESSAGE_CODEC_ERROR
static FlValue * read_float64_value(GBytes *buffer, size_t *offset, GError **error)
G_MODULE_EXPORT FlValue * fl_value_new_bool(bool value)
Definition: fl_value.cc:226
static FlValue * read_string_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
static gboolean read_uint8(GBytes *buffer, size_t *offset, uint8_t *value, GError **error)
static constexpr int kValueString
static constexpr int kValueUint8List
static constexpr int kValueInt32
static constexpr int kValueNull
static constexpr int kValueInt64List
static FlValue * read_int64_value(GBytes *buffer, size_t *offset, GError **error)
uint8_t value
static FlValue * read_int32_list_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
static FlValue * read_float64_list_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
static FlValue * read_int64_list_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
static FlValue * read_uint8_list_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
G_MODULE_EXPORT FlValue * fl_value_ref(FlValue *self)
Definition: fl_value.cc:335
static constexpr int kValueList
return TRUE
Definition: fl_view.cc:107
static FlValue * read_map_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)
static FlValue * read_int32_value(GBytes *buffer, size_t *offset, GError **error)
G_MODULE_EXPORT FlValue * fl_value_new_null()
Definition: fl_value.cc:222

◆ fl_standard_message_codec_write_size()

void fl_standard_message_codec_write_size ( FlStandardMessageCodec *  codec,
GByteArray *  buffer,
uint32_t  size 
)

fl_standard_message_codec_write_size: : an #FlStandardMessageCodec. : buffer to write into. : size value to write.

Writes a size field in Flutter Standard encoding.

Definition at line 434 of file fl_standard_message_codec.cc.

References write_uint16(), and write_uint32().

Referenced by fl_standard_message_codec_write_value().

436  {
437  if (size < 254) {
438  write_uint8(buffer, size);
439  } else if (size <= 0xffff) {
440  write_uint8(buffer, 254);
441  write_uint16(buffer, size);
442  } else {
443  write_uint8(buffer, 255);
444  write_uint32(buffer, size);
445  }
446 }
constexpr std::size_t size(T(&array)[N])
Definition: size.h:13
static void write_uint32(GByteArray *buffer, uint32_t value)
static void write_uint16(GByteArray *buffer, uint16_t value)

◆ fl_standard_message_codec_write_value()

gboolean fl_standard_message_codec_write_value ( FlStandardMessageCodec *  codec,
GByteArray *  buffer,
FlValue value,
GError **  error 
)

fl_standard_message_codec_write_value: : an #FlStandardMessageCodec. : buffer to write into. : (allow-none): value to write. : (allow-none): #GError location to store the error occurring, or NULL.

Writes an FlValue in Flutter Standard encoding.

Returns: TRUE on success.

Definition at line 475 of file fl_standard_message_codec.cc.

References FL_MESSAGE_CODEC_ERROR, FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE, fl_standard_message_codec_write_size(), fl_standard_message_codec_write_value(), fl_value_get_bool(), fl_value_get_float(), fl_value_get_float_list(), fl_value_get_int(), fl_value_get_int32_list(), fl_value_get_int64_list(), fl_value_get_length(), fl_value_get_list_value(), fl_value_get_map_key(), fl_value_get_map_value(), fl_value_get_string(), fl_value_get_type(), fl_value_get_uint8_list(), FL_VALUE_TYPE_BOOL, FL_VALUE_TYPE_FLOAT, FL_VALUE_TYPE_FLOAT_LIST, FL_VALUE_TYPE_INT, FL_VALUE_TYPE_INT32_LIST, FL_VALUE_TYPE_INT64_LIST, FL_VALUE_TYPE_LIST, FL_VALUE_TYPE_MAP, FL_VALUE_TYPE_NULL, FL_VALUE_TYPE_STRING, FL_VALUE_TYPE_UINT8_LIST, kValueFalse, kValueFloat64, kValueFloat64List, kValueInt32, kValueInt32List, kValueInt64, kValueInt64List, kValueList, kValueMap, kValueNull, kValueString, kValueTrue, kValueUint8List, length, TRUE, write_align(), write_float64(), write_int32(), and write_int64().

Referenced by fl_standard_message_codec_encode_message(), fl_standard_message_codec_write_value(), fl_standard_method_codec_encode_error_envelope(), fl_standard_method_codec_encode_method_call(), and fl_standard_method_codec_encode_success_envelope().

478  {
479  if (value == nullptr) {
480  write_uint8(buffer, kValueNull);
481  return TRUE;
482  }
483 
484  switch (fl_value_get_type(value)) {
485  case FL_VALUE_TYPE_NULL:
486  write_uint8(buffer, kValueNull);
487  return TRUE;
488  case FL_VALUE_TYPE_BOOL:
489  if (fl_value_get_bool(value)) {
490  write_uint8(buffer, kValueTrue);
491  } else {
492  write_uint8(buffer, kValueFalse);
493  }
494  return TRUE;
495  case FL_VALUE_TYPE_INT: {
496  int64_t v = fl_value_get_int(value);
497  if (v >= INT32_MIN && v <= INT32_MAX) {
498  write_uint8(buffer, kValueInt32);
499  write_int32(buffer, v);
500  } else {
501  write_uint8(buffer, kValueInt64);
502  write_int64(buffer, v);
503  }
504  return TRUE;
505  }
506  case FL_VALUE_TYPE_FLOAT:
507  write_uint8(buffer, kValueFloat64);
508  write_align(buffer, 8);
510  return TRUE;
511  case FL_VALUE_TYPE_STRING: {
512  write_uint8(buffer, kValueString);
513  const char* text = fl_value_get_string(value);
514  size_t length = strlen(text);
515  fl_standard_message_codec_write_size(self, buffer, length);
516  g_byte_array_append(buffer, reinterpret_cast<const uint8_t*>(text),
517  length);
518  return TRUE;
519  }
521  write_uint8(buffer, kValueUint8List);
522  size_t length = fl_value_get_length(value);
523  fl_standard_message_codec_write_size(self, buffer, length);
524  g_byte_array_append(buffer, fl_value_get_uint8_list(value),
525  sizeof(uint8_t) * length);
526  return TRUE;
527  }
529  write_uint8(buffer, kValueInt32List);
530  size_t length = fl_value_get_length(value);
531  fl_standard_message_codec_write_size(self, buffer, length);
532  write_align(buffer, 4);
533  g_byte_array_append(
534  buffer,
535  reinterpret_cast<const uint8_t*>(fl_value_get_int32_list(value)),
536  sizeof(int32_t) * length);
537  return TRUE;
538  }
540  write_uint8(buffer, kValueInt64List);
541  size_t length = fl_value_get_length(value);
542  fl_standard_message_codec_write_size(self, buffer, length);
543  write_align(buffer, 8);
544  g_byte_array_append(
545  buffer,
546  reinterpret_cast<const uint8_t*>(fl_value_get_int64_list(value)),
547  sizeof(int64_t) * length);
548  return TRUE;
549  }
551  write_uint8(buffer, kValueFloat64List);
552  size_t length = fl_value_get_length(value);
553  fl_standard_message_codec_write_size(self, buffer, length);
554  write_align(buffer, 8);
555  g_byte_array_append(
556  buffer,
557  reinterpret_cast<const uint8_t*>(fl_value_get_float_list(value)),
558  sizeof(double) * length);
559  return TRUE;
560  }
561  case FL_VALUE_TYPE_LIST:
562  write_uint8(buffer, kValueList);
565  for (size_t i = 0; i < fl_value_get_length(value); i++) {
567  self, buffer, fl_value_get_list_value(value, i), error)) {
568  return FALSE;
569  }
570  }
571  return TRUE;
572  case FL_VALUE_TYPE_MAP:
573  write_uint8(buffer, kValueMap);
576  for (size_t i = 0; i < fl_value_get_length(value); i++) {
578  self, buffer, fl_value_get_map_key(value, i), error) ||
580  self, buffer, fl_value_get_map_value(value, i), error)) {
581  return FALSE;
582  }
583  }
584  return TRUE;
585  }
586 
587  g_set_error(error, FL_MESSAGE_CODEC_ERROR,
589  "Unexpected FlValue type %d", fl_value_get_type(value));
590  return FALSE;
591 }
static constexpr int kValueInt32List
static constexpr int kValueFloat64List
static constexpr int kValueFalse
G_MODULE_EXPORT FlValueType fl_value_get_type(FlValue *self)
Definition: fl_value.cc:395
static void write_align(GByteArray *buffer, guint align)
static void write_float64(GByteArray *buffer, double value)
static constexpr int kValueTrue
FlMethodResponse GError ** error
static constexpr int kValueInt64
static constexpr int kValueFloat64
G_MODULE_EXPORT const double * fl_value_get_float_list(FlValue *self)
Definition: fl_value.cc:624
static constexpr int kValueMap
G_MODULE_EXPORT int64_t fl_value_get_int(FlValue *self)
Definition: fl_value.cc:582
void fl_standard_message_codec_write_size(FlStandardMessageCodec *codec, GByteArray *buffer, uint32_t size)
#define FL_MESSAGE_CODEC_ERROR
static void write_int64(GByteArray *buffer, int64_t value)
G_MODULE_EXPORT const int64_t * fl_value_get_int64_list(FlValue *self)
Definition: fl_value.cc:617
static constexpr int kValueString
static constexpr int kValueUint8List
G_MODULE_EXPORT const uint8_t * fl_value_get_uint8_list(FlValue *self)
Definition: fl_value.cc:603
static constexpr int kValueInt32
static constexpr int kValueNull
static constexpr int kValueInt64List
G_MODULE_EXPORT double fl_value_get_float(FlValue *self)
Definition: fl_value.cc:589
uint8_t value
size_t length
G_MODULE_EXPORT FlValue * fl_value_get_list_value(FlValue *self, size_t index)
Definition: fl_value.cc:677
G_MODULE_EXPORT FlValue * fl_value_get_map_value(FlValue *self, size_t index)
Definition: fl_value.cc:693
G_MODULE_EXPORT FlValue * fl_value_get_map_key(FlValue *self, size_t index)
Definition: fl_value.cc:685
G_MODULE_EXPORT const int32_t * fl_value_get_int32_list(FlValue *self)
Definition: fl_value.cc:610
static constexpr int kValueList
return TRUE
Definition: fl_view.cc:107
G_MODULE_EXPORT const gchar * fl_value_get_string(FlValue *self)
Definition: fl_value.cc:596
G_MODULE_EXPORT size_t fl_value_get_length(FlValue *self)
Definition: fl_value.cc:631
static void write_int32(GByteArray *buffer, int32_t value)
gboolean fl_standard_message_codec_write_value(FlStandardMessageCodec *self, GByteArray *buffer, FlValue *value, GError **error)
G_MODULE_EXPORT bool fl_value_get_bool(FlValue *self)
Definition: fl_value.cc:575

◆ G_DEFINE_TYPE()

G_DEFINE_TYPE ( FlStandardMessageCodec  ,
fl_standard_message_codec  ,
fl_message_codec_get_type()   
)

◆ get_data()

static const uint8_t* get_data ( GBytes *  buffer,
size_t *  offset 
)
static

Definition at line 108 of file fl_standard_message_codec.cc.

Referenced by read_float64_list_value(), read_float64_value(), read_int32_list_value(), read_int32_value(), read_int64_list_value(), read_int64_value(), read_string_value(), read_uint16(), read_uint32(), read_uint8(), and read_uint8_list_value().

108  {
109  return static_cast<const uint8_t*>(g_bytes_get_data(buffer, nullptr)) +
110  *offset;
111 }

◆ read_align()

static gboolean read_align ( GBytes *  buffer,
size_t *  offset,
size_t  align,
GError **  error 
)
static

Definition at line 90 of file fl_standard_message_codec.cc.

References check_size(), and TRUE.

Referenced by read_float64_list_value(), read_float64_value(), read_int32_list_value(), and read_int64_list_value().

93  {
94  if ((*offset) % align == 0) {
95  return TRUE;
96  }
97 
98  size_t required = align - (*offset) % align;
99  if (!check_size(buffer, *offset, required, error)) {
100  return FALSE;
101  }
102 
103  (*offset) += required;
104  return TRUE;
105 }
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
return TRUE
Definition: fl_view.cc:107

◆ read_float64_list_value()

static FlValue* read_float64_list_value ( FlStandardMessageCodec *  self,
GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 301 of file fl_standard_message_codec.cc.

References check_size(), fl_standard_message_codec_read_size(), fl_value_new_float_list(), get_data(), length, read_align(), and value.

Referenced by fl_standard_message_codec_read_value().

304  {
305  uint32_t length;
306  if (!fl_standard_message_codec_read_size(self, buffer, offset, &length,
307  error)) {
308  return nullptr;
309  }
310  if (!read_align(buffer, offset, 8, error)) {
311  return nullptr;
312  }
313  if (!check_size(buffer, *offset, sizeof(double) * length, error)) {
314  return nullptr;
315  }
317  reinterpret_cast<const double*>(get_data(buffer, offset)), length);
318  *offset += sizeof(double) * length;
319  return value;
320 }
gboolean fl_standard_message_codec_read_size(FlStandardMessageCodec *codec, GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
static gboolean read_align(GBytes *buffer, size_t *offset, size_t align, GError **error)
size_t length
G_MODULE_EXPORT FlValue * fl_value_new_float_list(const double *data, size_t data_length)
Definition: fl_value.cc:300

◆ read_float64_value()

static FlValue* read_float64_value ( GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 193 of file fl_standard_message_codec.cc.

References check_size(), fl_value_new_float(), get_data(), read_align(), and value.

Referenced by fl_standard_message_codec_read_value().

195  {
196  if (!read_align(buffer, offset, 8, error)) {
197  return nullptr;
198  }
199  if (!check_size(buffer, *offset, sizeof(double), error)) {
200  return nullptr;
201  }
202 
204  reinterpret_cast<const double*>(get_data(buffer, offset))[0]);
205  *offset += sizeof(double);
206  return value;
207 }
G_MODULE_EXPORT FlValue * fl_value_new_float(double value)
Definition: fl_value.cc:240
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
static gboolean read_align(GBytes *buffer, size_t *offset, size_t align, GError **error)

◆ read_int32_list_value()

static FlValue* read_int32_list_value ( FlStandardMessageCodec *  self,
GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 253 of file fl_standard_message_codec.cc.

References check_size(), fl_standard_message_codec_read_size(), fl_value_new_int32_list(), get_data(), length, read_align(), and value.

Referenced by fl_standard_message_codec_read_value().

256  {
257  uint32_t length;
258  if (!fl_standard_message_codec_read_size(self, buffer, offset, &length,
259  error)) {
260  return nullptr;
261  }
262  if (!read_align(buffer, offset, 4, error)) {
263  return nullptr;
264  }
265  if (!check_size(buffer, *offset, sizeof(int32_t) * length, error)) {
266  return nullptr;
267  }
269  reinterpret_cast<const int32_t*>(get_data(buffer, offset)), length);
270  *offset += sizeof(int32_t) * length;
271  return value;
272 }
gboolean fl_standard_message_codec_read_size(FlStandardMessageCodec *codec, GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
G_MODULE_EXPORT FlValue * fl_value_new_int32_list(const int32_t *data, size_t data_length)
Definition: fl_value.cc:280
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
static gboolean read_align(GBytes *buffer, size_t *offset, size_t align, GError **error)
size_t length

◆ read_int32_value()

static FlValue* read_int32_value ( GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 161 of file fl_standard_message_codec.cc.

References check_size(), fl_value_new_int(), get_data(), and value.

Referenced by fl_standard_message_codec_read_value().

163  {
164  if (!check_size(buffer, *offset, sizeof(int32_t), error)) {
165  return nullptr;
166  }
167 
169  reinterpret_cast<const int32_t*>(get_data(buffer, offset))[0]);
170  *offset += sizeof(int32_t);
171  return value;
172 }
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
G_MODULE_EXPORT FlValue * fl_value_new_int(int64_t value)
Definition: fl_value.cc:233

◆ read_int64_list_value()

static FlValue* read_int64_list_value ( FlStandardMessageCodec *  self,
GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 277 of file fl_standard_message_codec.cc.

References check_size(), fl_standard_message_codec_read_size(), fl_value_new_int64_list(), get_data(), length, read_align(), and value.

Referenced by fl_standard_message_codec_read_value().

280  {
281  uint32_t length;
282  if (!fl_standard_message_codec_read_size(self, buffer, offset, &length,
283  error)) {
284  return nullptr;
285  }
286  if (!read_align(buffer, offset, 8, error)) {
287  return nullptr;
288  }
289  if (!check_size(buffer, *offset, sizeof(int64_t) * length, error)) {
290  return nullptr;
291  }
293  reinterpret_cast<const int64_t*>(get_data(buffer, offset)), length);
294  *offset += sizeof(int64_t) * length;
295  return value;
296 }
gboolean fl_standard_message_codec_read_size(FlStandardMessageCodec *codec, GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
G_MODULE_EXPORT FlValue * fl_value_new_int64_list(const int64_t *data, size_t data_length)
Definition: fl_value.cc:290
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
static gboolean read_align(GBytes *buffer, size_t *offset, size_t align, GError **error)
size_t length

◆ read_int64_value()

static FlValue* read_int64_value ( GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 177 of file fl_standard_message_codec.cc.

References check_size(), fl_value_new_int(), get_data(), and value.

Referenced by fl_standard_message_codec_read_value().

179  {
180  if (!check_size(buffer, *offset, sizeof(int64_t), error)) {
181  return nullptr;
182  }
183 
185  reinterpret_cast<const int64_t*>(get_data(buffer, offset))[0]);
186  *offset += sizeof(int64_t);
187  return value;
188 }
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
G_MODULE_EXPORT FlValue * fl_value_new_int(int64_t value)
Definition: fl_value.cc:233

◆ read_list_value()

static FlValue* read_list_value ( FlStandardMessageCodec *  self,
GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 325 of file fl_standard_message_codec.cc.

References fl_standard_message_codec_read_size(), fl_standard_message_codec_read_value(), fl_value_append(), fl_value_new_list(), fl_value_ref(), and length.

Referenced by fl_standard_message_codec_read_value().

328  {
329  uint32_t length;
330  if (!fl_standard_message_codec_read_size(self, buffer, offset, &length,
331  error)) {
332  return nullptr;
333  }
334 
335  g_autoptr(FlValue) list = fl_value_new_list();
336  for (size_t i = 0; i < length; i++) {
337  g_autoptr(FlValue) child =
338  fl_standard_message_codec_read_value(self, buffer, offset, error);
339  if (child == nullptr) {
340  return nullptr;
341  }
342  fl_value_append(list, child);
343  }
344 
345  return fl_value_ref(list);
346 }
G_MODULE_EXPORT FlValue * fl_value_new_list()
Definition: fl_value.cc:310
gboolean fl_standard_message_codec_read_size(FlStandardMessageCodec *codec, GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
G_MODULE_EXPORT void fl_value_append(FlValue *self, FlValue *value)
Definition: fl_value.cc:506
size_t length
G_MODULE_EXPORT FlValue * fl_value_ref(FlValue *self)
Definition: fl_value.cc:335
FlValue * fl_standard_message_codec_read_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)

◆ read_map_value()

static FlValue* read_map_value ( FlStandardMessageCodec *  self,
GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 351 of file fl_standard_message_codec.cc.

References fl_standard_message_codec_read_size(), fl_standard_message_codec_read_value(), fl_value_new_map(), fl_value_ref(), fl_value_set(), length, and value.

Referenced by fl_standard_message_codec_read_value().

354  {
355  uint32_t length;
356  if (!fl_standard_message_codec_read_size(self, buffer, offset, &length,
357  error)) {
358  return nullptr;
359  }
360 
361  g_autoptr(FlValue) map = fl_value_new_map();
362  for (size_t i = 0; i < length; i++) {
363  g_autoptr(FlValue) key =
364  fl_standard_message_codec_read_value(self, buffer, offset, error);
365  if (key == nullptr) {
366  return nullptr;
367  }
368  g_autoptr(FlValue) value =
369  fl_standard_message_codec_read_value(self, buffer, offset, error);
370  if (value == nullptr) {
371  return nullptr;
372  }
373  fl_value_set(map, key, value);
374  }
375 
376  return fl_value_ref(map);
377 }
gboolean fl_standard_message_codec_read_size(FlStandardMessageCodec *codec, GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
G_MODULE_EXPORT void fl_value_set(FlValue *self, FlValue *key, FlValue *value)
Definition: fl_value.cc:523
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
G_MODULE_EXPORT FlValue * fl_value_new_map()
Definition: fl_value.cc:327
uint8_t value
size_t length
G_MODULE_EXPORT FlValue * fl_value_ref(FlValue *self)
Definition: fl_value.cc:335
FlValue * fl_standard_message_codec_read_value(FlStandardMessageCodec *self, GBytes *buffer, size_t *offset, GError **error)

◆ read_string_value()

static FlValue* read_string_value ( FlStandardMessageCodec *  self,
GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 212 of file fl_standard_message_codec.cc.

References check_size(), fl_standard_message_codec_read_size(), fl_value_new_string_sized(), get_data(), length, and value.

Referenced by fl_standard_message_codec_read_value().

215  {
216  uint32_t length;
217  if (!fl_standard_message_codec_read_size(self, buffer, offset, &length,
218  error)) {
219  return nullptr;
220  }
221  if (!check_size(buffer, *offset, length, error)) {
222  return nullptr;
223  }
225  reinterpret_cast<const gchar*>(get_data(buffer, offset)), length);
226  *offset += length;
227  return value;
228 }
gboolean fl_standard_message_codec_read_size(FlStandardMessageCodec *codec, GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
size_t length
G_MODULE_EXPORT FlValue * fl_value_new_string_sized(const gchar *value, size_t value_length)
Definition: fl_value.cc:254

◆ read_uint16()

static gboolean read_uint16 ( GBytes *  buffer,
size_t *  offset,
uint16_t *  value,
GError **  error 
)
static

Definition at line 130 of file fl_standard_message_codec.cc.

References check_size(), get_data(), and TRUE.

Referenced by fl_standard_message_codec_read_size().

133  {
134  if (!check_size(buffer, *offset, sizeof(uint16_t), error)) {
135  return FALSE;
136  }
137 
138  *value = reinterpret_cast<const uint16_t*>(get_data(buffer, offset))[0];
139  *offset += sizeof(uint16_t);
140  return TRUE;
141 }
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
return TRUE
Definition: fl_view.cc:107

◆ read_uint32()

static gboolean read_uint32 ( GBytes *  buffer,
size_t *  offset,
uint32_t *  value,
GError **  error 
)
static

Definition at line 145 of file fl_standard_message_codec.cc.

References check_size(), get_data(), and TRUE.

Referenced by fl_standard_message_codec_read_size().

148  {
149  if (!check_size(buffer, *offset, sizeof(uint32_t), error)) {
150  return FALSE;
151  }
152 
153  *value = reinterpret_cast<const uint32_t*>(get_data(buffer, offset))[0];
154  *offset += sizeof(uint32_t);
155  return TRUE;
156 }
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
return TRUE
Definition: fl_view.cc:107

◆ read_uint8()

static gboolean read_uint8 ( GBytes *  buffer,
size_t *  offset,
uint8_t *  value,
GError **  error 
)
static

Definition at line 115 of file fl_standard_message_codec.cc.

References check_size(), get_data(), and TRUE.

Referenced by fl_standard_message_codec_read_size(), and fl_standard_message_codec_read_value().

118  {
119  if (!check_size(buffer, *offset, sizeof(uint8_t), error)) {
120  return FALSE;
121  }
122 
123  *value = get_data(buffer, offset)[0];
124  (*offset)++;
125  return TRUE;
126 }
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
return TRUE
Definition: fl_view.cc:107

◆ read_uint8_list_value()

static FlValue* read_uint8_list_value ( FlStandardMessageCodec *  self,
GBytes *  buffer,
size_t *  offset,
GError **  error 
)
static

Definition at line 233 of file fl_standard_message_codec.cc.

References check_size(), fl_standard_message_codec_read_size(), fl_value_new_uint8_list(), get_data(), length, and value.

Referenced by fl_standard_message_codec_read_value().

236  {
237  uint32_t length;
238  if (!fl_standard_message_codec_read_size(self, buffer, offset, &length,
239  error)) {
240  return nullptr;
241  }
242  if (!check_size(buffer, *offset, sizeof(uint8_t) * length, error)) {
243  return nullptr;
244  }
245  FlValue* value = fl_value_new_uint8_list(get_data(buffer, offset), length);
246  *offset += length;
247  return value;
248 }
gboolean fl_standard_message_codec_read_size(FlStandardMessageCodec *codec, GBytes *buffer, size_t *offset, uint32_t *value, GError **error)
G_MODULE_EXPORT FlValue * fl_value_new_uint8_list(const uint8_t *data, size_t data_length)
Definition: fl_value.cc:263
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:39
FlMethodResponse GError ** error
static gboolean check_size(GBytes *buffer, size_t offset, size_t required, GError **error)
static const uint8_t * get_data(GBytes *buffer, size_t *offset)
uint8_t value
size_t length

◆ write_align()

static void write_align ( GByteArray *  buffer,
guint  align 
)
static

Definition at line 70 of file fl_standard_message_codec.cc.

Referenced by fl_standard_message_codec_write_value().

70  {
71  while (buffer->len % align != 0) {
72  write_uint8(buffer, 0);
73  }
74 }

◆ write_float64()

static void write_float64 ( GByteArray *  buffer,
double  value 
)
static

Definition at line 64 of file fl_standard_message_codec.cc.

Referenced by fl_standard_message_codec_write_value().

64  {
65  g_byte_array_append(buffer, reinterpret_cast<uint8_t*>(&value),
66  sizeof(double));
67 }
uint8_t value

◆ write_int32()

static void write_int32 ( GByteArray *  buffer,
int32_t  value 
)
static

Definition at line 54 of file fl_standard_message_codec.cc.

Referenced by fl_standard_message_codec_write_value().

54  {
55  g_byte_array_append(buffer, reinterpret_cast<uint8_t*>(&value),
56  sizeof(int32_t));
57 }
uint8_t value

◆ write_int64()

static void write_int64 ( GByteArray *  buffer,
int64_t  value 
)
static

Definition at line 59 of file fl_standard_message_codec.cc.

Referenced by fl_standard_message_codec_write_value().

59  {
60  g_byte_array_append(buffer, reinterpret_cast<uint8_t*>(&value),
61  sizeof(int64_t));
62 }
uint8_t value

◆ write_uint16()

static void write_uint16 ( GByteArray *  buffer,
uint16_t  value 
)
static

Definition at line 44 of file fl_standard_message_codec.cc.

Referenced by fl_standard_message_codec_write_size().

44  {
45  g_byte_array_append(buffer, reinterpret_cast<uint8_t*>(&value),
46  sizeof(uint16_t));
47 }
uint8_t value

◆ write_uint32()

static void write_uint32 ( GByteArray *  buffer,
uint32_t  value 
)
static

Definition at line 49 of file fl_standard_message_codec.cc.

Referenced by fl_standard_message_codec_write_size().

49  {
50  g_byte_array_append(buffer, reinterpret_cast<uint8_t*>(&value),
51  sizeof(uint32_t));
52 }
uint8_t value

Variable Documentation

◆ kValueFalse

constexpr int kValueFalse = 2
static

◆ kValueFloat64

constexpr int kValueFloat64 = 6
static

◆ kValueFloat64List

constexpr int kValueFloat64List = 11
static

◆ kValueInt32

constexpr int kValueInt32 = 3
static

◆ kValueInt32List

constexpr int kValueInt32List = 9
static

◆ kValueInt64

constexpr int kValueInt64 = 4
static

◆ kValueInt64List

constexpr int kValueInt64List = 10
static

◆ kValueList

constexpr int kValueList = 12
static

◆ kValueMap

constexpr int kValueMap = 13
static

◆ kValueNull

constexpr int kValueNull = 0
static

◆ kValueString

constexpr int kValueString = 7
static

◆ kValueTrue

constexpr int kValueTrue = 1
static

◆ kValueUint8List

constexpr int kValueUint8List = 8
static

◆ value

uint8_t value
Initial value:
{
g_byte_array_append(buffer, &value, sizeof(uint8_t))
uint8_t value

Definition at line 40 of file fl_standard_message_codec.cc.

Referenced by flutter::CounterValues::Add(), FlValueHandler::add(), flutter_runner::AccessibilityBridge::AddSemanticsNodeUpdate(), flutter::PersistentCache::cache_sksl(), checkEncodeDecode(), FlutterStandardMessageCodec::codecWithReaderWriter:, flutter::SemanticsUpdateBuilder::create(), tonic::CreateZeroInitializedDartObject(), fml::Message::Decode(), decode_error_message(), decode_error_value(), decode_message(), flutter::JsonMethodCodec::DecodeAndProcessResponseEnvelopeInternal(), flutter::StandardMethodCodec::DecodeAndProcessResponseEnvelopeInternal(), flutter::decodeFontFeatures(), flutter::ServiceProtocol::Handler::Description::Description(), flutter::RuntimeController::DispatchSemanticsAction(), egl_config_to_string(), egl_renderable_type_to_string(), egl_surface_type_to_string(), fml::Message::Encode(), fl_json_message_codec_decode(), fl_json_message_codec_decode_message(), fl_json_method_codec_decode_method_call(), fl_json_method_codec_decode_response(), fl_standard_message_codec_decode_message(), fl_standard_message_codec_read_value(), fl_value_lookup_string(), fl_value_new_float(), fl_value_new_int(), fl_value_new_list_from_strv(), fl_value_set_take(), FlutterEngineInitialize(), tonic::DartConverter< flutter::RRect >::FromArguments(), flutter::Shell::GetDartVM(), flutter::GetSwitchValue(), hex_string_to_bytes(), flutter::Engine::InitialRoute(), FlutterViewController::initWithCoder:, FlutterEngineRegistrar::initWithPlugin:flutterEngine:, tonic::LookupNonNullableType(), android::move_backward_type(), android::move_forward_type(), fml::UniqueObject< fdio_ns_t *, UniqueFDIONSTraits >::operator!=(), fml::UniqueObject< fdio_ns_t *, UniqueFDIONSTraits >::operator==(), ParseCodepoint(), read_float64_list_value(), read_float64_value(), read_int32_list_value(), read_int32_value(), read_int64_list_value(), read_int64_value(), read_map_value(), read_string_value(), read_uint8_list_value(), FlutterStandardReader::readByte, flutter::ByteStreamReader::ReadDouble(), flutter::ByteStreamReader::ReadInt32(), flutter::ByteStreamReader::ReadInt64(), flutter::StandardCodecSerializer::ReadSize(), FlutterStandardReader::readSize, flutter::StandardCodecSerializer::ReadValueOfType(), FlutterStandardReader::readValueOfType:, flutter::AssetManagerFontProvider::RegisterAsset(), txt::TypefaceFontAssetProvider::RegisterTypeface(), fml::UniqueObject< fdio_ns_t *, UniqueFDIONSTraits >::reset(), SemanticsObject::routeName, FlutterEngine::run, flutter::FrameTiming::Set(), flutter::ViewHolder::set_focusable(), flutter::ViewHolder::set_hit_testable(), flutter::Layer::set_needs_system_composite(), flutter::PersistentCache::SetAssetManager(), flutter::PersistentCache::SetCacheSkSL(), flutter::DartIsolateGroupData::SetChildIsolatePreparer(), txt::FontFeatures::SetFeature(), flutter::PersistentCache::SetIsDumpingSkp(), flutter_runner::AccessibilityBridge::SetSemanticsEnabled(), fml::SyncSwitch::SetSwitch(), flutter::TEST(), TEST(), flutter::testing::TEST(), tonic::ToDartTypeHandle(), fml::tracing::TraceToString(), update_editing_state(), flutter::SemanticsUpdateBuilder::updateNode(), flutter::PlatformViewAndroidDelegate::UpdateSemantics(), flutter::StandardCodecSerializer::WriteSize(), FlutterStandardWriter::writeSize:, flutter::StandardCodecSerializer::WriteValue(), flutter::PointExtensionSerializer::WriteValue(), flutter::SomeDataExtensionSerializer::WriteValue(), FlutterStandardWriter::writeValue:, flutter::AndroidShellHolder::~AndroidShellHolder(), and android::OnEntryRemoved< TKey, TValue >::~OnEntryRemoved().