One typo

function IsZero(Buffer: Pointer;....

----- Original Message ----- 
From: "Ross Levis" <[EMAIL PROTECTED]>
To: "Borland's Delphi Discussion List" <[email protected]>
Sent: Saturday, November 05, 2005 12:09 PM
Subject: Re: Test memory block


Just as a matter of interest, I came up with my own fast method working
along the lines of John's method but I think this is tidier.

type
  TBuffer32 = array[0..0] of LongWord;
  PBuffer32 = ^TBuffer32;

  TBuffer8 = array[0..0] of Byte;
  PBuffer8 = ^TBuffer8;

function IsZero(Buffer32: Pointer; BufferSize: Integer): Boolean;
var
  Size32: Integer;
  Buffer8: PBuffer8;
  Buffer32: PBuffer32;
  i: Integer;
begin
  Result := False;
  Buffer32 := Buffer;
  Size32 := BufferSize shr 2;
  for i := 0 to Size32-1 do
    if Buffer32[i] <> 0 then  // test 4 bytes at a time
      Exit;
  Buffer8 := Buffer;
  for i := 0 to BufferSize - (Size32 shl 2) -1 do
    if Buffer8[i] <> 0 then  // test remaining 1,2, or 3 bytes
      Exit;
  Result := True;
end;

_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

Reply via email to