?? RIGHT := 110 ??
MODULE ocm$adjust_allotted_sections;
*copyc osd$default_pragmats
?? PUSH (LISTEXT := ON) ??
*copyc llt$object_text_descriptor
*copyc llt$section_definition
*copyc llt$segment_definition
*copyc llt$obsolete_segment_definition
*copyc oct$offset_change_list
*copyc ocp$new_global_offset
?? POP ??

*copyc och$adjust_allotted_sections

  PROCEDURE [XDCL] ocp$adjust_allotted_sections (mod_dictionary_ocv: ^oct$offset_change_list;
        section_defs: ^llt$object_text_descriptor;
        p_int_ol: ^SEQ ( * ));

    VAR
      int_ol: ^SEQ ( * ),
      object_text_descriptor: ^llt$object_text_descriptor,
      obsolete_segment_definition: ^llt$obsolete_segment_definition,
      ocv_applied: boolean,
      section_definition: ^llt$section_definition,
      segment_definition: ^llt$segment_definition;

    int_ol := p_int_ol;

    ocv_applied := FALSE;
    RESET int_ol TO section_defs;
    REPEAT
      NEXT object_text_descriptor IN int_ol;
      CASE object_text_descriptor^.kind OF

      = llc$section_definition, llc$unallocated_common_block =
        NEXT section_definition IN int_ol;

      = llc$segment_definition =
        NEXT segment_definition IN int_ol;

      = llc$obsolete_segment_definition =
        NEXT obsolete_segment_definition IN int_ol;

      = llc$obsolete_allotted_seg_def =
        object_text_descriptor^.allotted_segment := ocp$new_global_offset (object_text_descriptor^.
              allotted_segment, mod_dictionary_ocv);
        NEXT obsolete_segment_definition IN int_ol;

      = llc$allotted_section_definition =
        object_text_descriptor^.allotted_section := ocp$new_global_offset (object_text_descriptor^.
              allotted_section, mod_dictionary_ocv);
        NEXT section_definition IN int_ol;

      = llc$allotted_segment_definition =
        object_text_descriptor^.allotted_segment := ocp$new_global_offset (object_text_descriptor^.
              allotted_segment, mod_dictionary_ocv);
        NEXT segment_definition IN int_ol;
      ELSE
        ocv_applied := TRUE;
      CASEND;
    UNTIL ocv_applied;
  PROCEND ocp$adjust_allotted_sections;
MODEND ocm$adjust_allotted_sections;
