Skip to content

Commit

Permalink
Performance improvement for INSPECT CONVERTING / TRANSFORM - missed f…
Browse files Browse the repository at this point in the history
…ile in commit

libcob:
* common.c (cob_get_sign_ascii, cob_put_sign_ascii, cob_put_sign_ebcdic): skip sign-adjustment if data is already without/with sign
* common.c (cob_put_sign_ebcdic): invalid data for negative sign is now converted to -0 instead of +0
* strings.c (cob_inspect_init_common): extracted from cob_inspect_init
* strings.c (cob_inspect_converting): reordered code, so inspect_mark is no longer needed
* strings.c (cob_inspect_init_common): extracted from cob_inspect_init
* strings.c (cob_inspect_init_converting), common.h: new stripped down variant of cob_inspect_init
* strings.c (cob_inspect_converting): changed conversion to be based on pre-computed conversion tables, improving performance a lot

cobc:
* typeck.c (cb_emit_inspect): emit reduced cob_inspect_init_converting without cob_inspect_finish for INSPECT CONVERTING / TRANSFORM
* parser.y: inspect_list renamed to inspect_format_variant
  • Loading branch information
sf-mensch committed May 11, 2022
1 parent 024a4a0 commit 35bc10c
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions libcob/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -1811,6 +1811,7 @@ COB_EXPIMP int cob_numeric_cmp (cob_field *, cob_field *);
/* Functions in strings.c */

COB_EXPIMP void cob_inspect_init (cob_field *, const cob_u32_t);
COB_EXPIMP void cob_inspect_init_converting (cob_field *);
COB_EXPIMP void cob_inspect_start (void);
COB_EXPIMP void cob_inspect_before (const cob_field *);
COB_EXPIMP void cob_inspect_after (const cob_field *);
Expand Down

0 comments on commit 35bc10c

Please sign in to comment.