Saltearse al contenido

slot_subarray

  • Busca el array en el slot parent_slot
  • Recupera el subobjeto en el índice especificado por array_id
  • Coloca el subobjeto en el slot new_slot o en el siguiente slot disponible si new_slot es 0
  • Devuelve el número del nuevo slot
int64_t slot_subarray (
uint32_t parent_slot,
uint32_t array_id,
uint32_t new_slot
);
int64_t subslot = 0;
subslot =
slot_subarray(slot_no, i, (uint32_t)subslot);
NombreTipoDescripción
parent_slotuint32_tSlot donde se encuentra el array padre
array_iduint32_t

Código sf del campo que se desea buscar.

Para calcularlo manualmente, toma el type serializado y desplázalo a los 16 bits más altos de un uint32_t, luego coloca el field en los 16 bits más bajos.

Ejemplo:
sfEmitNonce tiene type 5 y field 11, por lo que su valor es 0x050BU

new_slotuint32_tNuevo número de slot donde colocar el objeto del índice seleccionado. Si es 0, se usará el siguiente slot disponible.
TipoDescripción
int64_t

Número de slot del nuevo objeto asignado

Si es negativo, error:

DOESNT_EXIST
- el array_id no existe en el array del parent_slot

NO_FREE_SLOTS
- no hay slots disponibles

NOT_AN_ARRAY
- el parent_slot no contiene un STArray