[Lazarus] [OT]:Progdigy is out, Please anyone send this for any members.

Osvaldo Filho arquivostcf at gmail.com
Fri Sep 12 15:38:19 CEST 2008

Dear developers and users,

I maybe noticed a bug in TXMLConfig on Windows CE.

I create the configuration component dynamically in code because of the 
initial access violation - to catch the error:

    if XMLC = nil then
      XMLC := TXMLConfig.Create(Self);
    XMLC.RootName := 'CONFIG';
    XMLC.Filename := 'Config.xml';

 From somewhere (not sure, WinCE debugging really takes a while when 
emulating...) I get to unit XMLRead, procedure 
TXMLStreamInputSource.FetchData, line 920:

  PWideChar(FCharBufEnd)^ := #0;

The whole procedure is:

procedure TXMLStreamInputSource.FetchData;
  Remainder, BytesRead: Integer;
  OldBuf: PChar;
  Assert(FCharBufEnd - FCharBuf < Slack-4);

  OldBuf := FCharBuf;
  Remainder := FCharBufEnd - FCharBuf;
  if Remainder < 0 then
    Remainder := 0;
  FCharBuf := FAllocated+Slack-4-Remainder;
  Move(OldBuf^, FCharBuf^, Remainder);
  BytesRead := FStream.Read(FAllocated[Slack-4], FCapacity);
  FCharBufEnd := FAllocated + (Slack-4) + BytesRead;
  PWideChar(FCharBufEnd)^ := #0;

I found a very similar bug on the top of the tracker. Maybe this also 
helps to locate the cause.

Lazarus 0.9.25 beta
FPC 2.2.3
SVN rev. 15862

Pavel Řezníček

More information about the Lazarus mailing list