Opened 2 years ago

Closed 2 years ago

#1797 closed defect (fixed)

checked inline procedures should not call intern

Reported by: sjamaan Owned by: felix winkelmann
Priority: major Milestone: 5.4
Component: core libraries Version: 5.3.0
Keywords: Cc:
Estimated difficulty: easy


As found by Felix, inline safe procedures like C_i_char_equalp call C_i_check_char_2 which requires a call to intern0 to provide error reporting, sometimes more than once, even when there's no error.

This is highly inefficient and should be done differently. A quick fix would be to pass C_SCHEME_FALSE (or use the non-_2 version like C_i_check_char) but perhaps it's better to have C versions of the checking predicates that can call intern0 on a C string in case of error.

Change History (2)

comment:1 Changed 2 years ago by felix winkelmann

Owner: set to felix winkelmann
Status: newaccepted

comment:2 Changed 2 years ago by sjamaan

Resolution: fixed
Status: acceptedclosed

Fixed with 2d1f3dbdb2a57cf01c6720648ad7cc5e8bc27d7c

Note: See TracTickets for help on using tickets.