mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
zlib performance optimizations (#6597)
This commit is contained in:
parent
b3c35f3e7a
commit
9cb286004d
|
@ -54,7 +54,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_ZLIB IMPLEMENTATION.
|
CLASS zcl_abapgit_zlib IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD copy_out.
|
METHOD copy_out.
|
||||||
|
@ -118,7 +118,7 @@ CLASS ZCL_ABAPGIT_ZLIB IMPLEMENTATION.
|
||||||
lv_symbol = decode( go_lencode ).
|
lv_symbol = decode( go_lencode ).
|
||||||
|
|
||||||
IF lv_symbol < 256.
|
IF lv_symbol < 256.
|
||||||
lv_x = zcl_abapgit_zlib_convert=>int_to_hex( lv_symbol ).
|
lv_x = lv_symbol.
|
||||||
CONCATENATE gv_out lv_x INTO gv_out IN BYTE MODE.
|
CONCATENATE gv_out lv_x INTO gv_out IN BYTE MODE.
|
||||||
ELSEIF lv_symbol = 256.
|
ELSEIF lv_symbol = 256.
|
||||||
EXIT.
|
EXIT.
|
||||||
|
|
|
@ -16,12 +16,8 @@ CLASS zcl_abapgit_zlib_convert DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_int) TYPE i.
|
VALUE(rv_int) TYPE i.
|
||||||
|
|
||||||
CLASS-METHODS int_to_hex
|
PROTECTED SECTION.
|
||||||
IMPORTING
|
PRIVATE SECTION.
|
||||||
!iv_int TYPE i
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_hex) TYPE xstring.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,17 +27,14 @@ CLASS ZCL_ABAPGIT_ZLIB_CONVERT IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD bits_to_int.
|
METHOD bits_to_int.
|
||||||
|
|
||||||
DATA: lv_c TYPE c LENGTH 1,
|
DATA lv_i TYPE i.
|
||||||
lv_bits TYPE string.
|
DATA lv_offset TYPE i.
|
||||||
|
|
||||||
lv_bits = iv_bits.
|
DO strlen( iv_bits ) TIMES.
|
||||||
|
lv_i = iv_bits+lv_offset(1).
|
||||||
WHILE NOT lv_bits IS INITIAL.
|
rv_int = rv_int * 2 + lv_i.
|
||||||
lv_c = lv_bits.
|
lv_offset = lv_offset + 1.
|
||||||
rv_int = rv_int * 2.
|
ENDDO.
|
||||||
rv_int = rv_int + lv_c.
|
|
||||||
lv_bits = lv_bits+1.
|
|
||||||
ENDWHILE.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -66,15 +59,4 @@ CLASS ZCL_ABAPGIT_ZLIB_CONVERT IMPLEMENTATION.
|
||||||
ENDWHILE.
|
ENDWHILE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD int_to_hex.
|
|
||||||
|
|
||||||
DATA: lv_x TYPE x.
|
|
||||||
|
|
||||||
|
|
||||||
lv_x = iv_int.
|
|
||||||
rv_hex = lv_x.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -10,8 +10,7 @@ CLASS ltcl_test DEFINITION FOR TESTING
|
||||||
METHODS:
|
METHODS:
|
||||||
setup,
|
setup,
|
||||||
bits_to_int FOR TESTING,
|
bits_to_int FOR TESTING,
|
||||||
hex_to_bits FOR TESTING,
|
hex_to_bits FOR TESTING.
|
||||||
int_to_hex FOR TESTING.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -46,16 +45,4 @@ CLASS ltcl_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD int_to_hex.
|
|
||||||
|
|
||||||
DATA: lv_hex TYPE xstring.
|
|
||||||
|
|
||||||
lv_hex = mo_cut->int_to_hex( 64 ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lv_hex
|
|
||||||
exp = '40' ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user