Fix coding-related core dumps with gcc -ftrapv.
The code was computing A - B, where A and B are pointers, and B is random garbage. This can lead to core dumps on platforms that have special pointer registers, and it also leads to core dumps on x86-64 when compiled with gcc -ftrapv. The fix is to compute A - B only when B is initialized properly. * coding.c (coding_set_source, coding_set_destination): Return void. (coding_change_source, coding_change_destinations): New functions, with the old behaviors of coding_set_source and coding_set_destination. All callers that need an offset changed to use these new functions.
Showing with 48 additions and 17 deletions