Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
LCL
»
TSynEdit crashes when loading text
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
IRC channel
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
DBVirtualGrid - processin...
by
TRon
[
Today
at 02:49:32 am]
TBufDataset is behaving i...
by
Gustavo 'Gus' Carreno
[
Today
at 01:00:24 am]
Hypocycloid demo
by
Boleeman
[
Today
at 12:50:10 am]
GTK 3 Widget Set Status?
by
sysrpl
[September 26, 2023, 11:44:15 pm]
FPC 3.2.2 / Lazarus 2.2.6...
by
TRon
[September 26, 2023, 10:39:47 pm]
[SOLVED] Components with ...
by
Kurt
[September 26, 2023, 10:39:37 pm]
Cannot get file opening e...
by
Josh
[September 26, 2023, 08:59:47 pm]
Lazarus.exe does nothing ...
by
wp
[September 26, 2023, 08:23:50 pm]
Is it possible to jump in...
by
Dzandaa
[September 26, 2023, 07:54:12 pm]
is there a way to Forward...
by
440bx
[September 26, 2023, 07:24:23 pm]
weirdness with fnmatch (l...
by
robert rozee
[September 26, 2023, 05:54:06 pm]
SaveDialog asks for filen...
by
gjunk
[September 26, 2023, 03:50:26 pm]
Saving a Form state (rela...
by
Curt Carpenter
[September 26, 2023, 03:50:01 pm]
Stem and Leaf Plot and In...
by
Zvoni
[September 26, 2023, 03:43:51 pm]
Creating a new unit out o...
by
Okoba
[September 26, 2023, 03:13:28 pm]
Large system, i2C to go w...
by
pascalbythree
[September 26, 2023, 02:14:59 pm]
Linker error with LLVM 15...
by
ChrisR
[September 26, 2023, 01:36:49 pm]
Class Change Color Edit a...
by
emivaldo
[September 26, 2023, 01:19:39 pm]
[fpspreadsheet] Cannot co...
by
veb86
[September 26, 2023, 01:07:53 pm]
LazPaint Plugins
by
circular
[September 26, 2023, 01:02:10 pm]
[SOLVED] QRCode component
by
Pe3s
[September 26, 2023, 12:35:31 pm]
[solved] Confusing scope(...
by
TRon
[September 26, 2023, 12:08:06 pm]
[solved] Website(s) where...
by
TRon
[September 26, 2023, 12:00:01 pm]
any workaround of nested ...
by
powerpcer
[September 26, 2023, 11:12:52 am]
Improvement of DoCopyProp...
by
lagprogramming
[September 26, 2023, 09:51:24 am]
« previous
next »
Print
Pages: [
1
]
Author
Topic: TSynEdit crashes when loading text (Read 634 times)
domasz
Sr. Member
Posts: 275
TSynEdit crashes when loading text
«
on:
June 01, 2023, 08:13:29 pm »
When I click this button twice the program crashes. Might be something with highlighters (TSynMultiSyn, TSynPHPSyn, TSynHTMLSyn).
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
Button1Click
(
Sender
:
TObject
)
;
var
Str
:
String
;
L
:
TStringList
;
begin
L
:
=
TStringList
.
Create
;
L
.
LoadFromFile
(
'test.htm'
)
;
Str
:
=
L
.
Text
;
L
.
Free
;
SynEdit1
.
Text
:
=
Str
;
//crashes
end
;
Code: Pascal
[Select]
[+]
[-]
object
SynMultiSyn1
:
TSynMultiSyn
Enabled
=
False
Schemes
=
<
item
StartExpr
=
'<style>'
EndExpr
=
'</style>'
Highlighter
=
SynCssSyn1
MarkerAttri
.
Background
=
clNone
MarkerAttri
.
Foreground
=
16744448
end
item
StartExpr
=
'<\?php'
EndExpr
=
'\?>'
Highlighter
=
SynPHPSyn1
MarkerAttri
.
Background
=
clNone
MarkerAttri
.
Foreground
=
16512
end>
DefaultHighlighter
=
SynHTMLSyn1
Left
=
592
Top
=
40
end
Attached is super simple demo.
Logged
Martin_fr
Administrator
Hero Member
Posts: 9210
Debugger - SynEdit - and more
Re: TSynEdit crashes when loading text
«
Reply #1 on:
June 01, 2023, 08:25:21 pm »
I can reproduce...
It seems something in the Multi-HL. Not sure yet
Logged
From the wiki:
Ide Tools, Code completion and more
/
IDE cool features
/
Debugger Status
Martin_fr
Administrator
Hero Member
Posts: 9210
Debugger - SynEdit - and more
Re: TSynEdit crashes when loading text
«
Reply #2 on:
June 01, 2023, 08:30:46 pm »
Ideally report on the bug tracker please
Logged
From the wiki:
Ide Tools, Code completion and more
/
IDE cool features
/
Debugger Status
domasz
Sr. Member
Posts: 275
Re: TSynEdit crashes when loading text
«
Reply #3 on:
June 01, 2023, 08:35:39 pm »
Quote from: Martin_fr on June 01, 2023, 08:30:46 pm
Ideally report on the bug tracker please
Not sure if I did it right. Don't know how to post files there.
https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/40292
Logged
Martin_fr
Administrator
Hero Member
Posts: 9210
Debugger - SynEdit - and more
Re: TSynEdit crashes when loading text
«
Reply #4 on:
June 01, 2023, 08:40:39 pm »
ok, thanks
Logged
From the wiki:
Ide Tools, Code completion and more
/
IDE cool features
/
Debugger Status
Martin_fr
Administrator
Hero Member
Posts: 9210
Debugger - SynEdit - and more
Re: TSynEdit crashes when loading text
«
Reply #5 on:
June 02, 2023, 07:34:05 pm »
A temporary patch. I still need to do some testing.
Code: Diff
[Select]
[+]
[-]
diff --git a/components/synedit/synhighlightermulti.pas b/components/synedit/synhighlightermulti.pas
index 1343e
5d554
..ca662dc37d
100644
--- a/components/synedit/synhighlightermulti.pas
+++ b/components/synedit/synhighlightermulti.pas
@@ -
845
,
22
+
845
,
22
@@ procedure TSynHLightMultiVirtualLines.RealLinesDeleted
(
AIndex, ACount: Integer
)
;
// Real-lines starting in the middle of the Section
CountInSection := Min
(
AIndex + ACount, p^.EndPos.y +
1
)
- AIndex;
FirstVLine := p^.VirtualLine + AIndex - p^.StartPos.y;
- PrevEndVLine := p^.VirtualLine + p^.EndPos.y - p^.EndPos.y;
+ PrevEndVLine := p^.VirtualLine + p^.EndPos.y - p^.StartPos.y;
p^.EndPos.y := p^.EndPos.y - CountInSection;
inc
(
i
)
;
if i = FSectionList.Count then begin
DelVLines;
exit;
end;
p := FSectionList.PSections
[
i
]
;
VLineCount := CountInSection;
end;
while p^.EndPos.y < AIndex + ACount do begin
// Completly delete node
(
All Real lines deleted
)
VLineCount := VLineCount + p^.EndPos.y - p^.StartPos.y +
1
;
if PrevEndVLine = p^.VirtualLine then
dec
(
VLineCount
)
;
- PrevEndVLine := p^.VirtualLine + p^.EndPos.y - p^.EndPos.y;
+ PrevEndVLine := p^.VirtualLine + p^.EndPos.y - p^.StartPos.y;
FSectionList.Delete
(
i
)
;
if i = FSectionList.Count then begin
DelVLines;
Logged
From the wiki:
Ide Tools, Code completion and more
/
IDE cool features
/
Debugger Status
domasz
Sr. Member
Posts: 275
Re: TSynEdit crashes when loading text
«
Reply #6 on:
June 02, 2023, 08:46:13 pm »
Seems to work great, thank you for such a quick fix!
I tried it with hundreds of files from real websites and I found no problems.
«
Last Edit: June 02, 2023, 09:55:33 pm by domasz
»
Logged
Martin_fr
Administrator
Hero Member
Posts: 9210
Debugger - SynEdit - and more
Re: TSynEdit crashes when loading text
«
Reply #7 on:
June 03, 2023, 09:37:47 pm »
Found a few other issues too. For patch, see the commit mentioned in the reported issue.
Logged
From the wiki:
Ide Tools, Code completion and more
/
IDE cool features
/
Debugger Status
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
LCL
»
TSynEdit crashes when loading text
TinyPortal
© 2005-2018