mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 07:19:27 +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)
|
||||
else
|
||||
SetLength(Result, Info.DataSize);
|
||||
GetData(Name,@Result[1],Info.DataSize,Info.RegData);
|
||||
GetData(Name,PChar(Result),Info.DataSize,Info.RegData);
|
||||
end
|
||||
else
|
||||
result:='';
|
||||
@ -422,7 +422,7 @@ end;
|
||||
procedure TRegistry.WriteExpandString(const Name, Value: string);
|
||||
|
||||
begin
|
||||
PutData(Name, @Value[1], Length(Value),rdExpandString);
|
||||
PutData(Name, PChar(Value), Length(Value),rdExpandString);
|
||||
end;
|
||||
|
||||
procedure TRegistry.WriteFloat(const Name: string; Value: Double);
|
||||
@ -438,7 +438,7 @@ end;
|
||||
procedure TRegistry.WriteString(const Name, Value: string);
|
||||
|
||||
begin
|
||||
PutData(Name, @Value[1], Length(Value), rdString);
|
||||
PutData(Name, PChar(Value), Length(Value), rdString);
|
||||
end;
|
||||
|
||||
procedure TRegistry.MoveKey(const OldName, NewName: string; Delete: Boolean);
|
||||
|
@ -15,10 +15,9 @@ end;
|
||||
Function PrepKey(Const S : String) : pChar;
|
||||
|
||||
begin
|
||||
If (S[1]<>'\') then
|
||||
Result:=@S[1]
|
||||
else
|
||||
Result:=@S[2];
|
||||
Result:=PChar(S);
|
||||
If Result^='\' then
|
||||
Inc(Result);
|
||||
end;
|
||||
|
||||
Function RelativeKey(Const S : String) : Boolean;
|
||||
@ -71,7 +70,7 @@ Var
|
||||
RD : DWord;
|
||||
|
||||
begin
|
||||
P := @Name[1];
|
||||
P := PChar(Name);
|
||||
If RegQueryValueExA(fCurrentKey,P,Nil,
|
||||
@RD,Buffer,lpdword(@BufSize))<>ERROR_SUCCESS Then
|
||||
Result:=-1
|
||||
@ -97,7 +96,7 @@ Var
|
||||
P: PChar;
|
||||
|
||||
begin
|
||||
P:=@ValueName[1];
|
||||
P:=PChar(ValueName);
|
||||
With Value do
|
||||
Result:=RegQueryValueExA(fCurrentKey,P,Nil,lpdword(@RegData),Nil,lpdword(@DataSize))=ERROR_SUCCESS;
|
||||
If Not Result Then
|
||||
@ -340,7 +339,7 @@ begin
|
||||
rdInteger : RegDataType:=REG_DWORD;
|
||||
rdBinary : RegDataType:=REG_BINARY;
|
||||
end;
|
||||
P:=@Name[1];
|
||||
P:=PChar(Name);
|
||||
Result:=RegSetValueExA(fCurrentKey,P,0,RegDataType,Buffer,BufSize)=ERROR_SUCCESS;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user