diff --git a/src/utils/zcl_abapgit_diff.clas.abap b/src/utils/zcl_abapgit_diff.clas.abap index 530aac6bb..9e49fe514 100644 --- a/src/utils/zcl_abapgit_diff.clas.abap +++ b/src/utils/zcl_abapgit_diff.clas.abap @@ -309,6 +309,7 @@ CLASS zcl_abapgit_diff IMPLEMENTATION. FIELD-SYMBOLS: TYPE zif_abapgit_definitions=>ty_diff. LOOP AT mt_diff ASSIGNING + USING KEY new_num WHERE old = is_diff_old-old AND new = is_diff_old-new AND new_num = is_diff_old-new_num @@ -324,19 +325,11 @@ CLASS zcl_abapgit_diff IMPLEMENTATION. METHOD set_patch_new. - DATA: lv_new_num TYPE i. FIELD-SYMBOLS: TYPE zif_abapgit_definitions=>ty_diff. - LOOP AT mt_diff ASSIGNING . - - lv_new_num = -new_num. - - IF lv_new_num = iv_line_new. - EXIT. - ENDIF. - - ENDLOOP. - + READ TABLE mt_diff WITH TABLE KEY new_num + COMPONENTS new_num = iv_line_new + ASSIGNING . IF sy-subrc <> 0. zcx_abapgit_exception=>raise( |Invalid new line number { iv_line_new }| ). ENDIF. @@ -348,19 +341,11 @@ CLASS zcl_abapgit_diff IMPLEMENTATION. METHOD set_patch_old. - DATA: lv_old_num TYPE i. FIELD-SYMBOLS: TYPE zif_abapgit_definitions=>ty_diff. - LOOP AT mt_diff ASSIGNING . - - lv_old_num = -old_num. - - IF lv_old_num = iv_line_old. - EXIT. - ENDIF. - - ENDLOOP. - + READ TABLE mt_diff WITH TABLE KEY old_num + COMPONENTS old_num = iv_line_old + ASSIGNING . IF sy-subrc <> 0. zcx_abapgit_exception=>raise( |Invalid old line number { iv_line_old }| ). ENDIF. diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index b1976f0c2..63a40838f 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -269,7 +269,10 @@ INTERFACE zif_abapgit_definitions beacon TYPE i, END OF ty_diff . TYPES: - ty_diffs_tt TYPE STANDARD TABLE OF ty_diff WITH DEFAULT KEY . + ty_diffs_tt TYPE STANDARD TABLE OF ty_diff + WITH DEFAULT KEY + WITH NON-UNIQUE SORTED KEY new_num COMPONENTS new_num + WITH NON-UNIQUE SORTED KEY old_num COMPONENTS old_num. TYPES: BEGIN OF ty_count, insert TYPE i,