?? RIGHT := 110 ??
MODULE ocm$new_global_offset;
*copyc osd$default_pragmats
?? PUSH (LISTEXT := ON) ??
*copyc llt$section_address
*copyc oct$offset_change_list
?? POP ??

*copyc och$new_global_offset

  FUNCTION [XDCL] ocp$new_global_offset (old_offset: llt$section_address_range;
        offset_change_vector: ^oct$offset_change_list): llt$section_address_range;

    VAR
      i: llt$section_offset;

    ocp$new_global_offset := old_offset;
    IF offset_change_vector <> NIL THEN

    /find_entry/
      FOR i := 1 TO UPPERBOUND (offset_change_vector^) DO
        IF old_offset <= offset_change_vector^ [i].offset THEN
          ocp$new_global_offset := old_offset + offset_change_vector^ [i].delta;
          EXIT /find_entry/
        IFEND;
      FOREND /find_entry/;
    IFEND;
  FUNCEND ocp$new_global_offset;
MODEND ocm$new_global_offset;

