J,
Had to check the Finalize code for my own sanity. So it is safe to call
Finalize twice on the same string array.
 
I think you know this, but calling Finalize does not deallocate the array,
just deallocates all the strings it references. So I don't really see how it
solves your real problem - it may do as a side effect. In my opinion, it
just appears to fix the problem. I may be crossing wires here, looking at
part of the original post ( or is this just fixing one of the issues - in
which case the finalize would be sufficient, may have got too far off track)

I have never yet had to call Finalize directly.

Myles.

-----Original Message-----
From: vss [mailto:[EMAIL PROTECTED]
Sent: Monday, 25 August 2003 09:06
To: Multiple recipients of list delphi
Subject: RE: [DUG]: Access Violations


Well, with out it, the memory usage increased...I am runing some tool, 
forget what its called, and it tells you how much mem its using.
Also from the Help :-

Finalize simply sets all long strings to empty and all variants and 
interfaces to Unassigned, thus properly releasing any memory that was 
referenced by the long strings and variants.

The Dyn. Array is just arrays of strings sho this should be ok.

Jeremy

-----Original Message-----
From: Myles Penlington <[EMAIL PROTECTED]>
To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
Date: Mon, 25 Aug 2003 08:23:05 +1200
Subject: RE: [DUG]:  Access Violations

> Huh?
> Set array to zero? You mean length? The normal method is to assign nil
> to
> the array variable.
> Have never investigated the effect of using Finalize twice ... If
> finalize
> actually sets the fields to nil/binary zero would be okay.
> Hope it's not hiding the real problem or it may be pointing to the
> actual
> source of the real problem - invalid cast on dynamic array reference?
> Myles.
> 
> -----Original Message-----
> From: Jeremy Coulter [mailto:[EMAIL PROTECTED]
> Sent: Monday, 25 August 2003 07:56
> To: Multiple recipients of list delphi
> Subject: RE: [DUG]: Access Violations
> 
> 
> Hmm...well, if I have to set the array to zero, then I might as well
> use
> Finalize.
> Either wau, by usig Finalize, the problems have gone away, so it must
> hae helped.
> 
> Jeremy
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
> Behalf Of Myles Penlington
> Sent: Friday, 22 August 2003 20:22
> To: Multiple recipients of list delphi
> Subject: RE: [DUG]: Access Violations
> 
> 
> Should not have to use finalize - it is done automatically for dynamic
> arrays, once there reference count drops to zero. Myles
> 
> -----Original Message-----
> From: vss [mailto:[EMAIL PROTECTED]
> Sent: Thursday, 21 August 2003 10:16
> To: Multiple recipients of list delphi
> Subject: RE: [DUG]: Access Violations
> 
> 
> Just going thru the code, and the guy who wrote some of the core 
> functions used Dynamic arrays in quite a few places, BUT here never
> uses
> 
> Finalize() when he has finished with the array ! infact, it just stays 
> allocated !
> Some of these functions are call quite a lot of times too !
> 
> Looks like a start !
> 
> Jeremy
> 
> -----Original Message-----
> From: Myles Penlington <[EMAIL PROTECTED]>
> To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
> Date: Thu, 21 Aug 2003 09:36:59 +1200
> Subject: RE: [DUG]:  Access Violations
> 
> > Your AV trace stuff is not very good - the call stack does not make 
> > sense.
> > 
> > However, the address given would appear to be a nil object reference 
> > (or an
> > array?) - ie 0 + objectfieldoffset (Of a rather large object) ie 267 
> > bytes from the object base.
> > 
> > We have had the SQL general network error problem ($80000045 from 
> > memory), and the root cause was corrupted memory in our application -
> > invalid variants and WideStrings - note this is important. Ie it was 
> > not a problem
> > with the SQL box, but rather issues in our code. And the app did not
> > fall
> > apart straight away. ie could take several minutes before it gave the
> > error
> > in the end.
> > 
> > We ended up using some tools like BoundsChecker etc to test the app. 
> > But even with these it was very had to find. These in essence ruled 
> > out all the
> > basic stuff, but did not locate the exact error - just narrowed down
> > the
> > area.
> > 
> > Myles.
> > 
> > -----Original Message-----
> > From: vss [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, 20 August 2003 16:05
> > To: Multiple recipients of list delphi
> > Subject: [DUG]: Access Violations
> > 
> > 
> > Hi All.
> > An app. I wrote every now and then gets a GPF.
> > I am almost certain that the problem is related to or MSSQL box 
> > because every now and again we get general network errors, but its
> not
> 
> > very consistant, and our engineers dont seem to believe us ! I run 
> > "eXpress Application Manager" AV stuff which gives me some res. 
> > information, BUT I think the error below is really being caused 
> > somewhere else or as a result of something else like the SQL box 
> > problem above.
> > BUT can someone look at it and tell me if it is not something else?
> > The Other reason I am sceptical is that 2 users were in 2 different 
> > parts of the app, and they both got the same error at the same 
> > time...well thats the story "I" got :-)
> > 
> > Jeremy
> > 
> > # 20/08/2003 09:31:12 [ EXCEPT ] Type         : EAccessViolation ( 
> > EExternal )
> >                                  Unit         : Controls
> >                                  Line         : 10478
> >                                  Class        : <N/A>
> >                                  Function     : InitIMM32
> >                                  Address      : 0x00482581
> >                                  Sender Class : <N/A>
> >                                  Sender Name  : <N/A>
> >                                  Message      : Access violation at 
> > address 00482581 in module 'ComCare.exe'. Read of address 0000010B
> >                                  Call Stack   : DBConsts::DateUtils
> >                                                 
> > SqlTimSt::TSQLTimeStampData.DoSubtract
> >                                                 
> > SqlTimSt::TSQLTimeStampData.Compare
> >                                                 
> > SqlTimSt::TSQLTimeStampData.DoAdd
> >                                                 
> > IniFiles::TCustomIniFile.ReadInteger
> >                                                 
> > Forms::TApplication.ActivateHint
> >                                                 
> > MultiMon::_GetSystemMetrics
> >                                                 System::TextOut
> >                                                 
> > System::@HandleAutoException
> >                                                
> > System::@InitializeArray
> >                                                 
> > SysUtils::ValidateTimeStamp
> >                                                 SysUtils::FormatBuf
> >                                                 System::TextOut
> >                                                 System::ToLongPath
> >                                                 System::ToLongPath
> >                                                 ImgList::Forms
> >                                                
> Forms::HintMouseThread
> >                                                 
> > Forms::TScreen.GetMetricSettings
> >                                                 ImgList::Forms
> >                                                 
> > StdCtrls::TListBoxStrings.Get
> >                                                 
> > Forms::TApplication.ActivateHint
> >                                                 
> > MultiMon::_GetSystemMetrics
> >                                                 System::TextOut
> >                                                 System::@Assign
> >                                                 
> > System::@WStrFromPWChar
> >                                                 
> > F_XAM_Log::TfmXAMLog.FormCreate
> >                                                 IniFiles::F_XAM_Log
> >                                                 <Unknown>::<Unknown>
> >                                                 Variants::VarOpRare
> >                                                 <Unknown>::<Unknown>
> > 
> >
> ----------------------------------------------------------------------
> > -
> > ----
> >     New Zealand Delphi Users group - Delphi List -
> [EMAIL PROTECTED]
> >                   Website: http://www.delphi.org.nz
> > To UnSub, send email to: [EMAIL PROTECTED] 
> > with body of "unsubscribe delphi"
> > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
> >
> -----------------------------------------------------------------------
> > ----
> >     New Zealand Delphi Users group - Delphi List -
> [EMAIL PROTECTED]
> >                   Website: http://www.delphi.org.nz
> > To UnSub, send email to: [EMAIL PROTECTED] 
> > with body of "unsubscribe delphi"
> > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
> 
> -----------------------------------------------------------------------
> -
> ---
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED] 
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
> -----------------------------------------------------------------------
> -
> ---
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED] 
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
> 
> -----------------------------------------------------------------------
> ----
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED] 
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
> -----------------------------------------------------------------------
> ----
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED] 
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

Reply via email to