Optimize STATUS performance (#1664)

* Optimize STATUS performance

move list_subpackages() outside of loop

* logic updated
This commit is contained in:
Lars Hvam 2018-07-21 11:36:15 +02:00 committed by GitHub
parent b98db9bd7c
commit 16dcb2ea99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -57,7 +57,7 @@ ENDCLASS.
CLASS zcl_abapgit_file_status IMPLEMENTATION.
CLASS ZCL_ABAPGIT_FILE_STATUS IMPLEMENTATION.
METHOD build_existing.
@ -190,6 +190,7 @@ CLASS zcl_abapgit_file_status IMPLEMENTATION.
lt_items TYPE zif_abapgit_definitions=>ty_items_tt,
ls_item LIKE LINE OF lt_items,
lv_is_xml TYPE abap_bool,
lv_sub_fetched TYPE abap_bool,
lt_sub_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt,
lt_items_idx TYPE zif_abapgit_definitions=>ty_items_ts,
lt_state_idx TYPE zif_abapgit_definitions=>ty_file_signatures_ts. " Sorted by path+filename
@ -241,8 +242,11 @@ CLASS zcl_abapgit_file_status IMPLEMENTATION.
iv_obj_name = ls_item-obj_name ).
IF NOT ls_item-devclass IS INITIAL AND iv_devclass <> ls_item-devclass.
* make sure the package is under the repo main package
IF lv_sub_fetched = abap_false.
lt_sub_packages = zcl_abapgit_factory=>get_sap_package( iv_devclass )->list_subpackages( ).
lv_sub_fetched = abap_true.
ENDIF.
* make sure the package is under the repo main package
READ TABLE lt_sub_packages WITH KEY table_line = ls_item-devclass TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
CLEAR ls_item-devclass.