Saturday, January 28, 2012

GpDelphiUnits update

Although I’m regularly pushing updates into Google Code repository, updates to my web pages and, incidentally, to my blog are dragging behind. Here is the last year worth of changes:

DSiWin32 1.64b

  • Faster DSiFileExtensionIs.
  • [achim] DSiAddApplicationToFirewallExceptionListXP could fail with "Unknown resoveConflict" exception due to a syntax error.
  • [tommi prami] Compiles with D7.
  • [miha] SetErrorMode (SEM_NOOPENFILEERRORBOX) is called before LoadLibrary to prevent opening messagebox by Windows.
  • Implemented DSiGetThreadTime (two overloaded versions).
  • Compiles with XE2 (in 32-bit and 64-bit mode).
  • Removed dependency on the Consts unit.
  • Scoped unit names are used in XE2.
  • [GJ] Assembler implementation of the x64 version of Interlocked*64 family of functions.
  • Set msg.Result := 0; in DSiClassWndProc.

GpHugeF 6.04d

  • Prefetcher refactored so that the semantics is clearer. Functionality stays the same.
  • Fixed bugs in prefetcher.
  • Fixed memory leak in prefetcher.
  • Must not invalidate buffer in 'half closed' mode.
  • BlockRead was not functioning properly when called at the end of file (when previous call to BlockRead already returned less data than requested) if
    buffered mode was used.
  • [Istvan] TGpHugeFile.Fetch didn't decrement hfBufSize when reading from buffer. bufp was incremented by requested (read) amount instead of actually read (trans) amount
  • TGpHugeFile.Fetch did not always set block size when block was read from prefetcher.

GpLists 1.59

  • Added method FreeObjects to TGpIntegerObjectList and TGpInt64ObjectList.
  • Implemented limited size FIFO buffer - TGpFIFOBuffer.
  • Find functions check (in Assert) if the list is sorted.
  • Added TGpIntegerObjectList<T>, a thin wrapper around TGpIntegerObjectList (D2010+).
  • Added TGpInterfaceList<T>, a thin wrapper aroung TList<T>, which implements GpInterfaceList<T> (D2010+).
  • All lists classes implement appropriate interface (for example, TGpIntegerList implements IGpIntegerList).
  • Each list implements class function CreateInterface which creates corresponding interface-implementing object.
  • Speed optimizations in TGpDoublyLinkedList.
  • Added class TGpWideString.

GpSecurity 2.02

  • Implemented function GetCurrentSIDName.

GpStreams 1.38

  • Added methods WriteWideStr and WritelnWide to the TGpStreamEnhancer.
  • TGpJoinedStream uses Int64 for offsets.
  • Fixed TStream helper to not cause internal compiler errors in Delphi XE.
  • Added function TGpJoinedStream.RemoveStream and .RemoveProcessedStreams.
  • TGpJoinedStream.StreamCount and .Stream[] made public.
  • TGpJoinedStream can take ownership of substreams.
  • Added function TGpStreamEnhancer.CheckTag.

GpStringHash 1.10c

  • Implemented TGpStringInterfaceHash, a string-indexed hash of interfaces.
  • Fixed HashOf operation in 64-bit code.

GpStuff 1.31

  • Implemented procedure DontOptimize. Call DontOptimize(x) if you want to prevent compiler from optimizing out the variable x.
  • Implemented IGpAutoDestroyObject.
  • Implemented IGpTraceable.LogReferences.
  • X64 compatible.
  • [GJ] Assembler implementation of the x64 implementation of the TableFind* functions.
  • Added TGpMemoryBuffer - preallocated, growable caching memory buffer for one specific memory size.
  • Implemented EnumFiles enumerator.

GpTextStream 1.09a

  • [Erik Berry] 'Size' property has changed to int64 in Delphi 6.
  • [Erik Berry] EnumLines is only compiled if compiler supports enumerators.

GpVersion 2.08

  • Implemented Locale and Codepage properties.

No comments:

Post a Comment