mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +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.
|
||||
|
@ -118,7 +118,7 @@ CLASS ZCL_ABAPGIT_ZLIB IMPLEMENTATION.
|
|||
lv_symbol = decode( go_lencode ).
|
||||
|
||||
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.
|
||||
ELSEIF lv_symbol = 256.
|
||||
EXIT.
|
||||
|
|
|
@ -16,12 +16,8 @@ CLASS zcl_abapgit_zlib_convert DEFINITION
|
|||
RETURNING
|
||||
VALUE(rv_int) TYPE i.
|
||||
|
||||
CLASS-METHODS int_to_hex
|
||||
IMPORTING
|
||||
!iv_int TYPE i
|
||||
RETURNING
|
||||
VALUE(rv_hex) TYPE xstring.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -31,17 +27,14 @@ CLASS ZCL_ABAPGIT_ZLIB_CONVERT IMPLEMENTATION.
|
|||
|
||||
METHOD bits_to_int.
|
||||
|
||||
DATA: lv_c TYPE c LENGTH 1,
|
||||
lv_bits TYPE string.
|
||||
DATA lv_i TYPE i.
|
||||
DATA lv_offset TYPE i.
|
||||
|
||||
lv_bits = iv_bits.
|
||||
|
||||
WHILE NOT lv_bits IS INITIAL.
|
||||
lv_c = lv_bits.
|
||||
rv_int = rv_int * 2.
|
||||
rv_int = rv_int + lv_c.
|
||||
lv_bits = lv_bits+1.
|
||||
ENDWHILE.
|
||||
DO strlen( iv_bits ) TIMES.
|
||||
lv_i = iv_bits+lv_offset(1).
|
||||
rv_int = rv_int * 2 + lv_i.
|
||||
lv_offset = lv_offset + 1.
|
||||
ENDDO.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -66,15 +59,4 @@ CLASS ZCL_ABAPGIT_ZLIB_CONVERT IMPLEMENTATION.
|
|||
ENDWHILE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD int_to_hex.
|
||||
|
||||
DATA: lv_x TYPE x.
|
||||
|
||||
|
||||
lv_x = iv_int.
|
||||
rv_hex = lv_x.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -10,8 +10,7 @@ CLASS ltcl_test DEFINITION FOR TESTING
|
|||
METHODS:
|
||||
setup,
|
||||
bits_to_int FOR TESTING,
|
||||
hex_to_bits FOR TESTING,
|
||||
int_to_hex FOR TESTING.
|
||||
hex_to_bits FOR TESTING.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -46,16 +45,4 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
|
Loading…
Reference in New Issue
Block a user