diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-01-22 12:22:37 +0100 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-01-22 21:33:36 +0100 |
commit | ac2b81c3f8ab0a7af7c5078656547f1c7a9a9499 (patch) | |
tree | 39ce25a306c933a30d0ad26fc057af22d9562729 /asm | |
parent | 953a8313c3a9b464c34707485b143a9152500c78 (diff) | |
download | aspectj-ac2b81c3f8ab0a7af7c5078656547f1c7a9a9499.tar.gz aspectj-ac2b81c3f8ab0a7af7c5078656547f1c7a9a9499.zip |
Bugfix: caret error marks in compiler output too short
This very old bug in EclipseAdapterUtils calculated the '^' caret error
marks incorrectly. The marks were too short like this:
void m() { return vax[3]; }
^^^^^^^^^^^
Where the correct result would look like this:
void m() { return vax[3]; }
^^^^^^^^^^^^^^
This was due to the rather complicated way in which first surrounding
context code - here the leading 'void m() { ' and trailing ' }' - was
first added and then possible leading white space was cut off again from
the left. It is difficult to explain, the code is a nightmare, trying to
work with char arrays, counting indexes, repeatedly using
System.arraycopy and using lots of counters and offsets. I would have
liked to simplify the code, converting char[] buffers to Strings, but
decided to keep the basic structure for now, not sure what kind of
memory or performance considerations led to this design.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'asm')
0 files changed, 0 insertions, 0 deletions