@@ -521,73 +521,22 @@ function merge_metadata(metadata_left::Metadata, metadata_right::Metadata)
521521 offset = 0
522522
523523 for (idx, vn) in enumerate (vns_both)
524- # `idcs`
525524 idcs[vn] = idx
526- # `vns`
527525 push! (vns, vn)
528- if vn in vns_left && vn in vns_right
529- # `vals`: only valid if they're the length.
530- vals_left = getindex_internal (metadata_left, vn)
531- vals_right = getindex_internal (metadata_right, vn)
532- @assert length (vals_left) == length (vals_right)
533- append! (vals, vals_right)
534- # `ranges`
535- r = (offset + 1 ): (offset + length (vals_left))
536- push! (ranges, r)
537- offset = r[end ]
538- # `dists`: only valid if they're the same.
539- dist_right = getdist (metadata_right, vn)
540- # Give precedence to `metadata_right`.
541- push! (dists, dist_right)
542- gid = metadata_right. gids[getidx (metadata_right, vn)]
543- push! (gids, gid)
544- # `orders`: giving precedence to `metadata_right`
545- push! (orders, getorder (metadata_right, vn))
546- # `flags`
547- for k in keys (flags)
548- # Using `metadata_right`; should we?
549- push! (flags[k], is_flagged (metadata_right, vn, k))
550- end
551- elseif vn in vns_left
552- # Just extract the metadata from `metadata_left`.
553- # `vals`
554- vals_left = getindex_internal (metadata_left, vn)
555- append! (vals, vals_left)
556- # `ranges`
557- r = (offset + 1 ): (offset + length (vals_left))
558- push! (ranges, r)
559- offset = r[end ]
560- # `dists`
561- dist_left = getdist (metadata_left, vn)
562- push! (dists, dist_left)
563- gid = metadata_left. gids[getidx (metadata_left, vn)]
564- push! (gids, gid)
565- # `orders`
566- push! (orders, getorder (metadata_left, vn))
567- # `flags`
568- for k in keys (flags)
569- push! (flags[k], is_flagged (metadata_left, vn, k))
570- end
571- else
572- # Just extract the metadata from `metadata_right`.
573- # `vals`
574- vals_right = getindex_internal (metadata_right, vn)
575- append! (vals, vals_right)
576- # `ranges`
577- r = (offset + 1 ): (offset + length (vals_right))
578- push! (ranges, r)
579- offset = r[end ]
580- # `dists`
581- dist_right = getdist (metadata_right, vn)
582- push! (dists, dist_right)
583- gid = metadata_right. gids[getidx (metadata_right, vn)]
584- push! (gids, gid)
585- # `orders`
586- push! (orders, getorder (metadata_right, vn))
587- # `flags`
588- for k in keys (flags)
589- push! (flags[k], is_flagged (metadata_right, vn, k))
590- end
526+ metadata_for_vn = vn in vns_right ? metadata_right : metadata_left
527+
528+ val = getindex_internal (metadata_for_vn, vn)
529+ append! (vals, val)
530+ r = (offset + 1 ): (offset + length (val))
531+ push! (ranges, r)
532+ offset = r[end ]
533+ dist = getdist (metadata_for_vn, vn)
534+ push! (dists, dist)
535+ gid = metadata_for_vn. gids[getidx (metadata_for_vn, vn)]
536+ push! (gids, gid)
537+ push! (orders, getorder (metadata_for_vn, vn))
538+ for k in keys (flags)
539+ push! (flags[k], is_flagged (metadata_for_vn, vn, k))
591540 end
592541 end
593542
0 commit comments