diff --git a/src/box/tuple.cc b/src/box/tuple.cc index e4916d195e59188479e3b3f3f41057ce5d411433..0daec173676555e64ebe8618fb1fc20d6ed4bd7b 100644 --- a/src/box/tuple.cc +++ b/src/box/tuple.cc @@ -248,42 +248,6 @@ tuple_ref(struct tuple *tuple, int count) tuple_free(tuple); } -/** - * Get a field from tuple. - * - * @pre field < tuple->field_count. - * @returns field data if field exists or NULL - */ -const char * -tuple_field_old(const struct tuple_format *format, - const struct tuple *tuple, uint32_t i) -{ - const char *field = tuple->data; - - if (i == 0) - return field; - i--; - if (i < format->max_fieldno) { - if (format->offset[i] > 0) - return field + format->offset[i]; - if (format->offset[i] != INT32_MIN) { - uint32_t *field_map = (uint32_t *) tuple; - int32_t idx = format->offset[i]; - return field + field_map[idx]; - } - } - const char *tuple_end = field + tuple->bsize; - - while (field < tuple_end) { - uint32_t len = load_varint32(&field); - field += len; - if (i == 0) - return field; - i--; - } - return tuple_end; -} - const char * tuple_seek(struct tuple_iterator *it, uint32_t i, uint32_t *len) { diff --git a/src/box/tuple.h b/src/box/tuple.h index 8ba49b1946c8ac3317b3c7cac1dc0eb343e4cc13..bd893244c2040773087d8a61e09f1f2f5e2a796e 100644 --- a/src/box/tuple.h +++ b/src/box/tuple.h @@ -176,10 +176,38 @@ tuple_format(const struct tuple *tuple) * Get a field from tuple by index. * Returns a pointer to BER-length prefixed field. * + * @pre field < tuple->field_count. + * @returns field data if field exists or NULL */ -const char * +static inline const char * tuple_field_old(const struct tuple_format *format, - const struct tuple *tuple, uint32_t i); + const struct tuple *tuple, uint32_t i) +{ + const char *field = tuple->data; + + if (i == 0) + return field; + i--; + if (i < format->max_fieldno) { + if (format->offset[i] > 0) + return field + format->offset[i]; + if (format->offset[i] != INT32_MIN) { + uint32_t *field_map = (uint32_t *) tuple; + int32_t idx = format->offset[i]; + return field + field_map[idx]; + } + } + const char *tuple_end = field + tuple->bsize; + + while (field < tuple_end) { + uint32_t len = load_varint32(&field); + field += len; + if (i == 0) + return field; + i--; + } + return tuple_end; +} /** * @brief Return field data of the field