aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Friends
diff options
context:
space:
mode:
authorAleric Inglewood2014-05-24 02:36:12 +0200
committerJustin Clark-Casey (justincc)2014-06-19 23:52:51 +0100
commit3fe9c7c49d9c39ad879c1175c01c8cacced56046 (patch)
treeedd97dc031f64abedaf9a2edb2c06b5cc8a51a92 /OpenSim/Services/Friends
parentBulletSim: stop processing linkset child when it is discovered that the (diff)
downloadopensim-SC-3fe9c7c49d9c39ad879c1175c01c8cacced56046.zip
opensim-SC-3fe9c7c49d9c39ad879c1175c01c8cacced56046.tar.gz
opensim-SC-3fe9c7c49d9c39ad879c1175c01c8cacced56046.tar.bz2
opensim-SC-3fe9c7c49d9c39ad879c1175c01c8cacced56046.tar.xz
Fix looking up line number and colum when there is no exact match.
When a compile error reports a colum/error that is not an exact match in the positionMap dictionary, the last position in the map with a line number and position before the reported error should be returned. The old code had the following problems: 1) It returns l,c - which are line and column of the C# file, not LSL. 2) It doesn't set l to 'line' when the map has an entry with 'line'. 3) It sorts the map without taking columns into account, which may result in a random order of the columns. With my mono implementation the columns were reversed in order. For example, if the map contains the following lines: 99,5,49,10 100,30,50,10 100,40,1,0 101,5,51,10 and a translation of 100,35 was requested, then the old code would compare '100' with the keys in the first column - setting l to that key while it is smaller. Hence, l is set to 99. Then it finds the key 100 and doesn't update l. Because of the reversed sort order, it first compares the column 35 with 40, finding that it is smaller and therefore it stops; returning 99,1 instead of finding the correct 100,30 entry and returning 50,10. This patch causes 50,10 to be returned. The remaining problems after this patch are: 1) The sorting might not be necessary at all. 2) The is code duplication (I fixed both instances, but really there should be no code duplication imho).
Diffstat (limited to 'OpenSim/Services/Friends')
0 files changed, 0 insertions, 0 deletions