mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 20:49:09 +02:00
* Fix AV errors when taking pointers of empty strings.
git-svn-id: trunk@10302 -
This commit is contained in:
parent
518f21a99e
commit
d0aa4a7e2f
@ -375,7 +375,7 @@ begin
|
|||||||
SetLength(Result, Info.DataSize-1)
|
SetLength(Result, Info.DataSize-1)
|
||||||
else
|
else
|
||||||
SetLength(Result, Info.DataSize);
|
SetLength(Result, Info.DataSize);
|
||||||
GetData(Name,@Result[1],Info.DataSize,Info.RegData);
|
GetData(Name,PChar(Result),Info.DataSize,Info.RegData);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
result:='';
|
result:='';
|
||||||
@ -422,7 +422,7 @@ end;
|
|||||||
procedure TRegistry.WriteExpandString(const Name, Value: string);
|
procedure TRegistry.WriteExpandString(const Name, Value: string);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
PutData(Name, @Value[1], Length(Value),rdExpandString);
|
PutData(Name, PChar(Value), Length(Value),rdExpandString);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRegistry.WriteFloat(const Name: string; Value: Double);
|
procedure TRegistry.WriteFloat(const Name: string; Value: Double);
|
||||||
@ -438,7 +438,7 @@ end;
|
|||||||
procedure TRegistry.WriteString(const Name, Value: string);
|
procedure TRegistry.WriteString(const Name, Value: string);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
PutData(Name, @Value[1], Length(Value), rdString);
|
PutData(Name, PChar(Value), Length(Value), rdString);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRegistry.MoveKey(const OldName, NewName: string; Delete: Boolean);
|
procedure TRegistry.MoveKey(const OldName, NewName: string; Delete: Boolean);
|
||||||
|
@ -15,10 +15,9 @@ end;
|
|||||||
Function PrepKey(Const S : String) : pChar;
|
Function PrepKey(Const S : String) : pChar;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
If (S[1]<>'\') then
|
Result:=PChar(S);
|
||||||
Result:=@S[1]
|
If Result^='\' then
|
||||||
else
|
Inc(Result);
|
||||||
Result:=@S[2];
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Function RelativeKey(Const S : String) : Boolean;
|
Function RelativeKey(Const S : String) : Boolean;
|
||||||
@ -71,7 +70,7 @@ Var
|
|||||||
RD : DWord;
|
RD : DWord;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
P := @Name[1];
|
P := PChar(Name);
|
||||||
If RegQueryValueExA(fCurrentKey,P,Nil,
|
If RegQueryValueExA(fCurrentKey,P,Nil,
|
||||||
@RD,Buffer,lpdword(@BufSize))<>ERROR_SUCCESS Then
|
@RD,Buffer,lpdword(@BufSize))<>ERROR_SUCCESS Then
|
||||||
Result:=-1
|
Result:=-1
|
||||||
@ -97,7 +96,7 @@ Var
|
|||||||
P: PChar;
|
P: PChar;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
P:=@ValueName[1];
|
P:=PChar(ValueName);
|
||||||
With Value do
|
With Value do
|
||||||
Result:=RegQueryValueExA(fCurrentKey,P,Nil,lpdword(@RegData),Nil,lpdword(@DataSize))=ERROR_SUCCESS;
|
Result:=RegQueryValueExA(fCurrentKey,P,Nil,lpdword(@RegData),Nil,lpdword(@DataSize))=ERROR_SUCCESS;
|
||||||
If Not Result Then
|
If Not Result Then
|
||||||
@ -340,7 +339,7 @@ begin
|
|||||||
rdInteger : RegDataType:=REG_DWORD;
|
rdInteger : RegDataType:=REG_DWORD;
|
||||||
rdBinary : RegDataType:=REG_BINARY;
|
rdBinary : RegDataType:=REG_BINARY;
|
||||||
end;
|
end;
|
||||||
P:=@Name[1];
|
P:=PChar(Name);
|
||||||
Result:=RegSetValueExA(fCurrentKey,P,0,RegDataType,Buffer,BufSize)=ERROR_SUCCESS;
|
Result:=RegSetValueExA(fCurrentKey,P,0,RegDataType,Buffer,BufSize)=ERROR_SUCCESS;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user