Graeme Geldenhuys wrote:
Hi,

The 3rd unit test fails due to StrPos giving a access violation. I ran this same unit test under Delphi 7 and it passed as StrPos returned a nil value when passing two '' param values.

Has this been reported as a bug yet?


-----------------  CUT  -------------------
var
  lFrom: string;
  lSearch: string;
  lResult: PChar;
begin
  lFrom   := 'abc';
  lSearch := 'b';
  lResult := StrPos(Pointer(lFrom), Pointer(lSearch));

Eeeeuwww....

StrPos is expecting 2 PChar params and not a Pointer.
Please use PChar(lFrom) and PChar(lSearch) to let the compiler make the proper string to PChar conversion.
You never ever can cast a string to a pchar using Pointer()

Marc



  AssertEquals('Failing on 1', 'bc', string(lResult));

  lSearch := 'x';
  lResult := StrPos(Pointer(lFrom), Pointer(lSearch));
  AssertEquals('Failing on 2', '', string(lResult));

  lFrom   := '';
  lSearch := '';
  lResult := StrPos(Pointer(lFrom), Pointer(lSearch));
  AssertEquals('Failing on 3', '', string(lResult));

-----------------  END  -------------------


Regards,
  - Graeme -






_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to