Opened 3 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 |
Description
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
Owner: | set to felix winkelmann |
---|---|
Status: | new → accepted |
comment:2 Changed 2 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Note: See
TracTickets for help on using
tickets.
Fixed with 2d1f3dbdb2a57cf01c6720648ad7cc5e8bc27d7c