View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0025244 | Lazarus | IDE | public | 2013-10-27 20:42 | 2014-01-25 15:06 |
Reporter | Cyrax | Assigned To | Martin Friebe | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Target Version | 1.2.0 | Fixed in Version | 1.3 (SVN) | ||
Summary | 0025244: Exception Range Check Error raised inside SynEditMarkupIfDef.pas when scrolling editor. | ||||
Description | See summary field, "Steps To Reproduce" and "Additional Information" for more info. This happens only if {$ENDIF (or other conditional/compiler directive) does not have closing curly bracket. | ||||
Steps To Reproduce | 1. Open attached project in IDE. 2. Open project1.lpr in text editor. 3. Scroll text area with mouse scroll wheel or text cursor control keys. | ||||
Additional Information | Target system: win32, Free Pascal trunk 2.7.1-r25835, Lazarus trunk '1.3'-r43331 fpc make options all install sourceinstall UPXPROG=echo OPT="-gw2 -godwarfsets -gl -O- -OoNO -Xs-" COMPILER_OPTIONS="-gw2 -godwarfsets -gl -O- -OoNO -Xs-" INST ALL_PREFIX=i:\free_pascal_and_lazarus\free_pascal_and_lazarus\fpc\trunk\build\tr unk_x32 REVSTR=25835 IDE=1 lazarus make options make all UPXPROG=echo OPT="-gw2 -godwarfsets -gh -gl -O- - OoNO -dHEAPTRC_WINDOW -Xs-" USESVN2REVISIONINC=0 --- Call stack: #0 fpc_raiseexception(0xc9, 0xb22cc2, 0xd01f3b4) at ..\inc\except.inc:218 0000001 RUNERRORTOEXCEPT(201, 0xb22cc2, 0xd01f3b4) at ..\objpas\sysutils\sysutils.inc:415 0000002 HANDLEERRORADDRFRAME(201, 0xb22cc2, 0xd01f3b4) at ..\inc\system.inc:1062 0000003 HANDLEERRORADDRFRAMEIND(201, 0xb22cc2, 0xd01f3b4) at ..\inc\system.inc:1079 0000004 fpc_dynarray_rangecheck(0xffc88e0, 1) at ..\inc\dynarr.inc:41 0000005 GETENTRY(0xff9eb88, 1) at syneditmarkupifdef.pp:1318 0000006 GETENTRY({FATBOL = false, FATEOL = false, FNODE = 0xff9eb88, FTREE = 0x108f5718, FSTARTLINE = 8, INDEX = 3, FCACHENESTMINIMUM = -1, FCACHENESTSTART = -1, FCACHENESTEND = -1, STARTLINE = 8, ATBOL = false, ATEOL = false, NODE = 0xff9eb88}, 1) at syneditmarkupifdef.pp:1495 0000007 GETORINSERTNODEATLINE(0x108f5718, 21) at syneditmarkupifdef.pp:1832 0000008 VALIDATERANGE(0x108f5718, 22, 56, 0x108f57a8) at syneditmarkupifdef.pp:2815 0000009 DOTREEUNLOCKING(0x107af190, 0x108f5718) at syneditmarkupifdef.pp:3188 0000010 CALLNOTIFYEVENTS(0x10406e40, 0x108f5718) at lazmethodlist.pas:163 0000011 UNLOCKTREE(0x108f5718) at syneditmarkupifdef.pp:3122 0000012 DECPAINTLOCK(0x107af190) at syneditmarkupifdef.pp:3954 0000013 DECPAINTLOCK(0x108d72a8) at syneditmarkup.pp:510 0000014 DODECPAINTLOCK(0x11123760, 0x11123760) at synedit.pp:2278 0000015 CALLNOTIFYEVENTS(0x10017f90, 0x11123760) at lazmethodlist.pas:163 0000016 SENDNOTIFICATION(0x2fabd8, SENRDECPAINTLOCK, 0x11123760) at synedittextbuffer.pp:1447 0000017 SETUPDATESTATE(0x2fabd8, false, 0x11123760) at synedittextbuffer.pp:1216 0000018 ENDUPDATE(0x2fabd8, 0x11123760) at lazsynedittext.pas:962 0000019 DECPAINTLOCK(0x11123760) at synedit.pp:2167 0000020 WMMOUSEWHEEL(0x11123760, {MSG = 522, BUTTON = 0, WHEELDELTA = -120, X = 186, Y = 178, RESULT = 0, USERDATA = 0x0, STATE = []}) at synedit.pp:7155 0000021 DISPATCH(0x11123760, 0) at ..\inc\objpas.inc:602 0000022 WNDPROC(0x11123760, {MSG = 522, WPARAM = -7864320, LPARAM = 11665594, RESULT = 0, WPARAMLO = 0, WPARAMHI = 65416, WPARAMFILLER = {}, LPARAMLO = 186, LPARAMHI = 178, LPARAMFILLER = {}, RESULTLO = 0, RESULTHI = 0, RESULTFILLER = {}}) at include\control.inc:2099 0000023 WNDPROC(0x11123760, {MSG = 522, WPARAM = -7864320, LPARAM = 11665594, RESULT = 0, WPARAMLO = 0, WPARAMHI = 65416, WPARAMFILLER = {}, LPARAMLO = 186, LPARAMHI = 178, LPARAMFILLER = {}, RESULTLO = 0, RESULTHI = 0, RESULTFILLER = {}}) at include\wincontrol.inc:5327 0000024 WNDPROC(0x11123760, {MSG = 522, WPARAM = -7864320, LPARAM = 11665594, RESULT = 0, WPARAMLO = 0, WPARAMHI = 65416, WPARAMFILLER = {}, LPARAMLO = 186, LPARAMHI = 178, LPARAMFILLER = {}, RESULTLO = 0, RESULTHI = 0, RESULTFILLER = {}}) at synedit.pp:5721 0000025 DELIVERMESSAGE(0x11123760, 0) at lclmessageglue.pas:112 0000026 WINDOWPROC(198950, 522, -7864320, 22938119) at win32\win32callback.inc:2497 0000027 gapfnScSendMessage at :0 0000028 ?? at :0 0000029 USER32!GetThreadDesktop at :0 0000030 WIN32INT_$$_DISPOSECOMBOEDITWINDOWINFO$TCUSTOMCOMBOBOX at :0 0000031 USER32!CharPrevW at :0 0000032 USER32!DispatchMessageW at :0 0000033 APPPROCESSMESSAGES(0xd2417c0) at win32\win32object.inc:367 0000034 HANDLEMESSAGE(0xd1e97e8) at include\application.inc:1268 0000035 RUNLOOP(0xd1e97e8) at include\application.inc:1401 0000036 APPRUN(0xd2417c0, {Proc = {procedure (POINTER)} 0xd01feb0, Self = 0xd1e97e8}) at include\interfacebase.inc:54 0000037 RUN(0xd1e97e8) at include\application.inc:1389 0000038 main at lazarus.pp:128 | ||||
Tags | No tags attached. | ||||
Fixed in Revision | 43332 | ||||
LazTarget | 1.2 | ||||
Widgetset | |||||
Attached Files |
|
|
|
|
One note. Not related to the crash (but it can affect display of ifdef too) {$IFNDEF TEST_DELPHI} {$mode objfpc} {$ELSE} {$mode delphi} {$ENDIF} The HL does parse both $mode, because the HL does not use the IFDEF state. That means that it (should (there is actually another bug, that makes it unpredictable/random) see the mode delphi last. And nested comments, or nested {} in directives will (should) be off. So the {$H+} is part and end of the ENDIF. |
|
Please test and close if ok |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-10-27 20:42 | Cyrax | New Issue | |
2013-10-27 20:42 | Cyrax | File Added: test_project.zip | |
2013-10-27 20:52 | Martin Friebe | Assigned To | => Martin Friebe |
2013-10-27 20:52 | Martin Friebe | Status | new => assigned |
2013-10-27 22:41 | Martin Friebe | Note Added: 0071003 | |
2013-10-28 01:42 | Martin Friebe | Fixed in Revision | => 43332 |
2013-10-28 01:42 | Martin Friebe | LazTarget | => 1.2 |
2013-10-28 01:42 | Martin Friebe | Widgetset | Win32/Win64 => |
2013-10-28 01:42 | Martin Friebe | Note Added: 0071006 | |
2013-10-28 01:42 | Martin Friebe | Status | assigned => resolved |
2013-10-28 01:42 | Martin Friebe | Fixed in Version | => 1.3 (SVN) |
2013-10-28 01:42 | Martin Friebe | Resolution | open => fixed |
2013-10-28 01:42 | Martin Friebe | Target Version | => 1.2.0 |
2014-01-25 15:06 | Cyrax | Status | resolved => closed |