SynEdit, Highlighter: fix an issue with pchar (read only) to no longer allocated string

git-svn-id: trunk@30096 -
This commit is contained in:
martin 2011-03-31 10:03:53 +00:00
parent 3c48e02f12
commit 9ecc3e5d91
17 changed files with 19 additions and 3 deletions

View File

@ -1252,9 +1252,7 @@ begin
ResetRange
else
SetRange(FCurrentRanges[LineNumber - 1]);
// Keep a copy of the line text, since some highlighters just use a PChar pointer to it.
FLineText := CurrentLines[LineNumber];
SetLine(FLineText, LineNumber);
SetLine(CurrentLines[LineNumber], LineNumber);
end;
procedure TSynCustomHighlighter.ResetRange;
@ -1263,6 +1261,8 @@ end;
procedure TSynCustomHighlighter.SetLine(const NewValue: String; LineNumber: Integer);
begin
// Keep a copy of the line text, since some highlighters just use a PChar pointer to it.
FLineText := NewValue;
FIsInNextToEOL := False;
FLineIndex := LineNumber;
end;

View File

@ -468,6 +468,7 @@ end; { Destroy }
procedure TSynAnySyn.SetLine(const NewValue: String; LineNumber:Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -417,6 +417,7 @@ end;
procedure TSynBatSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber: Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fEcho := False;

View File

@ -812,6 +812,7 @@ end; { Create }
procedure TSynCppSyn.SetLine(const NewValue: String; LineNumber:Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -1473,6 +1473,7 @@ end;
procedure TSynCssSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber: Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -193,6 +193,7 @@ end; { Create }
procedure TSynIniSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber:Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -693,6 +693,7 @@ end; { Create }
procedure TSynJavaSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String;
LineNumber:Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fEol := False;

View File

@ -1537,6 +1537,7 @@ end;
procedure TSynJScriptSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber: Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -1488,6 +1488,7 @@ var
i: Integer;
begin
if IsScanning then exit;
inherited;
FCurLineIndex := LineNumber;
FLine := NewValue;

View File

@ -2039,6 +2039,7 @@ end; { Create }
procedure TSynPerlSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String;
LineNumber:Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -696,6 +696,7 @@ end;
procedure TSynPHPSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber: Integer);
begin
inherited;
fLine := PChar(NewValue);
{$IFDEF SYN_LAZARUS}
fLineLen := length(NewValue);

View File

@ -263,6 +263,7 @@ procedure TSynPositionHighlighter.SetLine(const NewValue: string;
var
p: PPositionTokens;
begin
inherited;
fLine := NewValue;
fLineLen := length(fLine);
fLineNumber := LineNumber;

View File

@ -479,6 +479,7 @@ end;
procedure TSynPythonSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: string;
LineNumber: Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -1110,6 +1110,7 @@ end;
procedure TSynSQLSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: string; LineNumber: Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -207,6 +207,7 @@ end; { Create }
procedure TSynTeXSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber:Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -354,6 +354,7 @@ procedure TSynUNIXShellScriptSyn.SetLine(
{$IFDEF FPC}const {$ENDIF}NewValue: String;
LineNumber:Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;

View File

@ -1053,6 +1053,7 @@ end;
procedure TSynVBSyn.SetLine({$IFDEF FPC}const {$ENDIF}NewValue: String; LineNumber: Integer);
begin
inherited;
fLine := PChar(NewValue);
Run := 0;
fLineNumber := LineNumber;