[fpc-devel]StrPas error (was fpc v1.1 cpupara memleak)

Sergey Korshunoff seyko at comail.ru
Sun Jul 14 16:24:06 CEST 2002


> It's simpler/safer to just put the free in a finalization section of
> paramgr. It's fixed now.
> Jonas

Nice!
There is another small problem: StrPas realization.

  We have problems with
    GetEnvironmentVariable('NON_EXISTING_ONE');
  because StrPas do not check its parm for a NIL equivalence.
  And StrLen() can not be used to calculate a length of NIL
  (as I understand from a Kylix souirces).

  A suggested  StrPas realization is like StrPas realization in Kylix: it     
 uses a compiler function to convert PChar to string.

diff -urN FPC-MY-0-1.old/fpc/rtl/objpas/syspch.inc 
FPC-MY-0-1/fpc/rtl/objpas/syspch.inc
--- FPC-MY-0-1.old/fpc/rtl/objpas/syspch.inc	Tue Jun 11 06:50:40 2002
+++ FPC-MY-0-1/fpc/rtl/objpas/syspch.inc	Tue Jun 11 06:52:28 2002
@@ -36,13 +36,8 @@
 {  StrPas converts a PChar to a pascal string  }
 
 function StrPas(Str: PChar): string;
-var
-  l: Integer;
 begin
-  l := StrLen(Str);
-  SetLength(result, l);
-  if l > 0 then
-    Move(Str^, result[1], l);
+  Result:=Str;
 end ;
 
 {  StrAlloc allocates a buffer of Size + 4




More information about the fpc-devel mailing list