- while (src_i < src_field_path->indexes->len &&
- tgt_i < tgt_field_path->indexes->len) {
- uint64_t src_index = bt_field_path_get_index_by_index_inline(
- src_field_path, src_i);
- uint64_t tgt_index = bt_field_path_get_index_by_index_inline(
- tgt_field_path, tgt_i);
-
- if (tgt_index > src_index) {
- is_valid = false;
- goto end;
+ for (src_i = 0, tgt_i = 0; src_i < src_field_path->items->len &&
+ tgt_i < tgt_field_path->items->len; src_i++, tgt_i++) {
+ struct bt_field_path_item *src_fp_item =
+ bt_field_path_borrow_item_by_index_inline(
+ src_field_path, src_i);
+ struct bt_field_path_item *tgt_fp_item =
+ bt_field_path_borrow_item_by_index_inline(
+ tgt_field_path, tgt_i);
+
+ if (src_fp_item->type == BT_FIELD_PATH_ITEM_TYPE_INDEX &&
+ tgt_fp_item->type == BT_FIELD_PATH_ITEM_TYPE_INDEX) {
+ if (tgt_fp_item->index > src_fp_item->index) {
+ is_valid = false;
+ goto end;
+ }