+static inline void php_ion_unserialize_field_name(php_ion_unserializer *ser, zend_string **key)
+{
+ // FIXME: symbol table
+ ION_STRING name;
+ ION_CHECK(ion_reader_get_field_name(ser->reader, &name));
+ if (!name.length) {
+ ION_SYMBOL *is_ptr;
+ ION_CHECK(ion_reader_get_field_name_symbol(ser->reader, &is_ptr));
+ if (!ION_SYMBOL_IS_NULL(is_ptr) && is_ptr->value.length) {
+ name = is_ptr->value;
+ } else if (is_ptr) {
+ char buf[MAX_LENGTH_OF_LONG + 1 + 1] = {0}, *end = buf + sizeof(buf) - 1, *ptr;
+ ptr = zend_print_long_to_buf(end, is_ptr->sid);
+ *--ptr = '$';
+ *key = zend_string_init(ptr, end - ptr, 0);
+ return;
+ }
+ }
+ *key = zend_string_from_ion(&name);
+}
+