Re: [fpc-devel] Important: Call for testing.

2008-04-04 Thread Mattias Gärtner
Zitat von Martin Schreiber <[EMAIL PROTECTED]>:

> On Friday 04 April 2008 13.56:45 Michael Van Canneyt wrote:
> > On Fri, 4 Apr 2008, Martin Schreiber wrote:
> > > The next problem is childpos handling:
> > > http://bugs.freepascal.org/view.php?id=11102
> >
> > I've never understood what this is about, so some additional information
> > would be welcome...
> >
> It is used in order change the widget stacking order in an inherited form for
> example:
> In ancestor form streaming- child- and creation-order is twidget1, twidget2,
> twidget3 what means (in MSEgui, I don't know for Lazarus) twidget2 is over
> twidget1, twidget3 is over twidget2.
> Now you do 'Bring to Front' for twidget1 in a inherited form which changes
> the
> child order to twidget2, twidget3, twidget1.
> The new child order must be written and read back while streaming the
> descendent. It is done with ffChildPos filerflag and a following integer.
> Repositioning of the inherited children is done by  TComponent.SetChildOrder
> IIRC.

Same for lazarus.

Mattias

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


Re: [fpc-devel] Important: Call for testing.

2008-04-04 Thread Michael Van Canneyt


On Fri, 4 Apr 2008, Martin Schreiber wrote:

> On Friday 04 April 2008 13.56:45 Michael Van Canneyt wrote:
> > On Fri, 4 Apr 2008, Martin Schreiber wrote:
> > > The next problem is childpos handling:
> > > http://bugs.freepascal.org/view.php?id=11102
> >
> > I've never understood what this is about, so some additional information
> > would be welcome...
> >
> It is used in order change the widget stacking order in an inherited form for 
> example:
> In ancestor form streaming- child- and creation-order is twidget1, twidget2, 
> twidget3 what means (in MSEgui, I don't know for Lazarus) twidget2 is over 
> twidget1, twidget3 is over twidget2.
> Now you do 'Bring to Front' for twidget1 in a inherited form which changes 
> the 
> child order to twidget2, twidget3, twidget1.

Bweeh :(

That means I must compare original and new child order.

OK, thanks. I'll try to fix this ASAP.

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


Re: [fpc-devel] Important: Call for testing.

2008-04-04 Thread Martin Schreiber
On Friday 04 April 2008 13.56:45 Michael Van Canneyt wrote:
> On Fri, 4 Apr 2008, Martin Schreiber wrote:
> > The next problem is childpos handling:
> > http://bugs.freepascal.org/view.php?id=11102
>
> I've never understood what this is about, so some additional information
> would be welcome...
>
It is used in order change the widget stacking order in an inherited form for 
example:
In ancestor form streaming- child- and creation-order is twidget1, twidget2, 
twidget3 what means (in MSEgui, I don't know for Lazarus) twidget2 is over 
twidget1, twidget3 is over twidget2.
Now you do 'Bring to Front' for twidget1 in a inherited form which changes the 
child order to twidget2, twidget3, twidget1.
The new child order must be written and read back while streaming the 
descendent. It is done with ffChildPos filerflag and a following integer.
Repositioning of the inherited children is done by  TComponent.SetChildOrder 
IIRC.

Martin

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


Re: [fpc-devel] Important: Call for testing.

2008-04-04 Thread Michael Van Canneyt


On Fri, 4 Apr 2008, Martin Schreiber wrote:

> On Thursday 27 March 2008 21.50:33 Michael Van Canneyt wrote:
> >
> > While extensive testing has been done (using the FPCunit testing
> > framework), and the working of Lazarus with this new code was verified, it
> > is possible that bugs remain. We would therefor very much appreciate that
> > if you have code that uses some of the routines below, that you test your
> > code with the latest FPC from subversion (revision 10572 or above) and
> > report any bugs that you may encounter. If you do, please submit a
> > bugreport in mantis:
> >
> > http://bugs.freepascal.org/
> >
> The next problem is childpos handling:
> http://bugs.freepascal.org/view.php?id=11102

I've never understood what this is about, so some additional information
would be welcome...

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


Re: [fpc-devel] Important: Call for testing.

2008-04-04 Thread Martin Schreiber
On Thursday 27 March 2008 21.50:33 Michael Van Canneyt wrote:
>
> While extensive testing has been done (using the FPCunit testing
> framework), and the working of Lazarus with this new code was verified, it
> is possible that bugs remain. We would therefor very much appreciate that
> if you have code that uses some of the routines below, that you test your
> code with the latest FPC from subversion (revision 10572 or above) and
> report any bugs that you may encounter. If you do, please submit a
> bugreport in mantis:
>
> http://bugs.freepascal.org/
>
The next problem is childpos handling:
http://bugs.freepascal.org/view.php?id=11102

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


Re: [fpc-devel] Important: Call for testing.

2008-04-04 Thread Michael Van Canneyt


On Fri, 4 Apr 2008, Martin Schreiber wrote:

> On Thursday 03 April 2008 10.58:26 Michael Van Canneyt wrote:
> > On Thu, 3 Apr 2008, Martin Schreiber wrote:
> > > You used my copyrighted code, the sources look exactly the same. ;-)
> >
> > A strong case against all these copyright suits... :-)
> >
> And we made the same error, see attachment. It is a little bit more 
> complicated.
> I hope I got the coding style right. ;-)

Not quite, I adapted it, no big deal.

It's like I said when I fixed the original issue: 
for inherited forms with inline forms, the original patch was not tested.

Anyway, I applied your patch with a slight modification, thank you very much !
Revision 10601.

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


Re: [fpc-devel] Important: Call for testing.

2008-04-04 Thread Martin Schreiber
On Thursday 03 April 2008 10.58:26 Michael Van Canneyt wrote:
> On Thu, 3 Apr 2008, Martin Schreiber wrote:
> > You used my copyrighted code, the sources look exactly the same. ;-)
>
> A strong case against all these copyright suits... :-)
>
And we made the same error, see attachment. It is a little bit more 
complicated.
I hope I got the coding style right. ;-)

Martin
--- home/mse/packs/standard/svn/fp/trunk/rtl/objpas/classes/.svn/text-base/writer.inc.svn-base	2008-04-03 11:06:35.0 +0200
+++ tmp/svndiff.tmp	2008-04-04 11:51:29.0 +0200
@@ -595,10 +595,15 @@
 begin
   Dummy:=0;
   Flags := [];
-  If Assigned(FAncestor) then
-Flags:=[ffInherited];
-  if csInline in Instance.ComponentState then
-Flags:=Flags+[ffInline];
+  If (FAncestor <> nil) and
+   //has ancestor
+ (not (csInline in Instance.ComponentState) or
+   //no inline component
+  (csAncestor in Instance.Componentstate) and (FAncestors <> nil)) then
+   //the inline component is inherited
+Flags:=[ffInherited]
+  else If csInline in Instance.ComponentState then
+Flags:=[ffInline];
   FDriver.BeginComponent(Instance,Flags, Dummy);
   WriteProperties(Instance);
   WriteListEnd;
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Important: Call for testing.

2008-04-03 Thread Michael Van Canneyt


On Thu, 3 Apr 2008, Martin Schreiber wrote:

> On Thursday 03 April 2008 10.42:02 Michael Van Canneyt wrote:
> > On Sun, 30 Mar 2008, Martin Schreiber wrote:
> > > On Sunday 30 March 2008 19.21:04 Vincent Snijders wrote:
> > > > Martin Schreiber schreef:
> > > > > Inline is used for subforms, components in a form which inherit from
> > > > > another form (TFrame in Delphi), in MSEgui every form can be used as
> > > > > inline component. The ffInline filer flag must be written and the
> > > > > ancestor must be looked up on writing and reading like inherited
> > > > > components.
> > > > >
> > > > >> Alternatively you can supply a patch ;-)
> > > > >
> > > > > I don't think I am "clean" enough...
> > > >
> > > > Alternatively, you can write the test case ;-)
> > >
> > > I'll do. The first is
> > > http://bugs.freepascal.org/view.php?id=11069
> >
> > Fixed;
> > There is no test to see what happens when you stream a descendent of a form
> > with an inline form; if you have such a case, please test it.
> >
> You used my copyrighted code, the sources look exactly the same. ;-)

A strong case against all these copyright suits... :-)

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


Re: [fpc-devel] Important: Call for testing.

2008-04-03 Thread Martin Schreiber
On Thursday 03 April 2008 10.42:02 Michael Van Canneyt wrote:
> On Sun, 30 Mar 2008, Martin Schreiber wrote:
> > On Sunday 30 March 2008 19.21:04 Vincent Snijders wrote:
> > > Martin Schreiber schreef:
> > > > Inline is used for subforms, components in a form which inherit from
> > > > another form (TFrame in Delphi), in MSEgui every form can be used as
> > > > inline component. The ffInline filer flag must be written and the
> > > > ancestor must be looked up on writing and reading like inherited
> > > > components.
> > > >
> > > >> Alternatively you can supply a patch ;-)
> > > >
> > > > I don't think I am "clean" enough...
> > >
> > > Alternatively, you can write the test case ;-)
> >
> > I'll do. The first is
> > http://bugs.freepascal.org/view.php?id=11069
>
> Fixed;
> There is no test to see what happens when you stream a descendent of a form
> with an inline form; if you have such a case, please test it.
>
You used my copyrighted code, the sources look exactly the same. ;-)

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


Re: [fpc-devel] Important: Call for testing.

2008-04-03 Thread Martin Schreiber
On Thursday 03 April 2008 10.42:02 Michael Van Canneyt wrote:
> On Sun, 30 Mar 2008, Martin Schreiber wrote:
> > On Sunday 30 March 2008 19.21:04 Vincent Snijders wrote:
> > > Martin Schreiber schreef:
> > > > Inline is used for subforms, components in a form which inherit from
> > > > another form (TFrame in Delphi), in MSEgui every form can be used as
> > > > inline component. The ffInline filer flag must be written and the
> > > > ancestor must be looked up on writing and reading like inherited
> > > > components.
> > > >
> > > >> Alternatively you can supply a patch ;-)
> > > >
> > > > I don't think I am "clean" enough...
> > >
> > > Alternatively, you can write the test case ;-)
> >
> > I'll do. The first is
> > http://bugs.freepascal.org/view.php?id=11069
>
> Fixed;
> There is no test to see what happens when you stream a descendent of a form
> with an inline form; if you have such a case, please test it.
>
Argh, I just made it too!
OK, I'll update from trunk and test it. There are interesting cases with 
inlined inherited components and the like.

Thanks, Martin
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Important: Call for testing.

2008-04-03 Thread Michael Van Canneyt


On Sun, 30 Mar 2008, Martin Schreiber wrote:

> On Sunday 30 March 2008 19.21:04 Vincent Snijders wrote:
> > Martin Schreiber schreef:
> > > Inline is used for subforms, components in a form which inherit from
> > > another form (TFrame in Delphi), in MSEgui every form can be used as
> > > inline component. The ffInline filer flag must be written and the
> > > ancestor must be looked up on writing and reading like inherited
> > > components.
> > >
> > >> Alternatively you can supply a patch ;-)
> > >
> > > I don't think I am "clean" enough...
> >
> > Alternatively, you can write the test case ;-)
> >
> I'll do. The first is 
> http://bugs.freepascal.org/view.php?id=11069

Fixed; 
There is no test to see what happens when you stream a descendent of a form 
with an inline form;
if you have such a case, please test it.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Vincent Snijders

C Western schreef:

Giulio Bernardi wrote:
Maybe this patch (for lazarus) solves the issue? (warning: lazarus 
compiles and runs but I didn't test it).


Giulio

  
It seems to work reasonably OK for me. It doesn't handle the copyright 
symbol quite right that was causing me problems, but I don't think the 
previous version did either. It does stop the error message though.




Giulio, thanks for the patch.

Colin, thanks for testing.

Applied in r14698.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread C Western

Giulio Bernardi wrote:

Maybe this patch (for lazarus) solves the issue? (warning: lazarus compiles and 
runs but I didn't test it).

Giulio

  
It seems to work reasonably OK for me. It doesn't handle the copyright 
symbol quite right that was causing me problems, but I don't think the 
previous version did either. It does stop the error message though.


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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Michael Van Canneyt


On Mon, 31 Mar 2008, Martin Schreiber wrote:

> On Monday 31 March 2008 16.13:48 Michael Van Canneyt wrote:
> > On Mon, 31 Mar 2008, Martin Schreiber wrote:
> 
> > > I am not convinced. By controlling the order of the properties and the
> > > load order of the forms it is possible to control the resolving order.
> > > Does FPC loose on quality if you use the same order as Delphi? It is
> > > possible that we don't know all future applications of resolving order at
> > > the moment, why should we give away compatibility if not necessary?
> >
> > Simply said: if I must reverse order, then I have to redo the whole
> > cleanroom stuff and it will be exactly as in Delphi. This is not an
> > option.
> >
> I probably don't understand. What is the problem to reverse the iterating 
> order over a list?

It's a single linked list. Not a TList. Reversing it would be a waste of
time.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Martin Schreiber
On Monday 31 March 2008 16.13:48 Michael Van Canneyt wrote:
> On Mon, 31 Mar 2008, Martin Schreiber wrote:

> > I am not convinced. By controlling the order of the properties and the
> > load order of the forms it is possible to control the resolving order.
> > Does FPC loose on quality if you use the same order as Delphi? It is
> > possible that we don't know all future applications of resolving order at
> > the moment, why should we give away compatibility if not necessary?
>
> Simply said: if I must reverse order, then I have to redo the whole
> cleanroom stuff and it will be exactly as in Delphi. This is not an
> option.
>
I probably don't understand. What is the problem to reverse the iterating 
order over a list?

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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Joost van der Sluis
Op maandag 31-03-2008 om 16:13 uur [tijdzone +0200], schreef Michael Van
Canneyt:
> 
> Simply said: if I must reverse order, then I have to redo the whole
> cleanroom stuff and it will be exactly as in Delphi. This is not an 
> option. 

Is this about mine (cleanroom) code? Maybe I can change it? If someone
can explain to me what chould be changed and supply some tests... I
haven't looked into the differences.

Joost.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Michael Van Canneyt


On Mon, 31 Mar 2008, Martin Schreiber wrote:

> On Sunday 30 March 2008 20.42:13 Michael Van Canneyt wrote:
> > On Sun, 30 Mar 2008, Martin Schreiber wrote:
> 
> > > I'd like to second Colins wish. Please use the same resolving order as
> > > Delphi. MSEide+MSEgui compiles with Delphi7 so the reversed order is an
> > > unnecessary complication and error source.
> >
> > It's not a complication. Resolving order is and must be irrelevant. Until
> > 'Loaded' is called, you're not supposed to make any assumptions about what
> > property is and what property is not set, and hence also not about the
> > order.
> >
> I am not convinced. By controlling the order of the properties and the load 
> order of the forms it is possible to control the resolving order. Does FPC 
> loose on quality if you use the same order as Delphi? It is possible that we 
> don't know all future applications of resolving order at the moment, why 
> should we give away compatibility if not necessary?

Simply said: if I must reverse order, then I have to redo the whole
cleanroom stuff and it will be exactly as in Delphi. This is not an 
option.

And since resolving order is not something you are supposed to rely on,
you're on dangerous ground. As soon as Delphi changes it, your code will
break anyway.

As I said: the only moment that is guaranteed is the 'loaded' call, stick to
that.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Martin Schreiber
On Monday 31 March 2008 15.00:02 Michael Van Canneyt wrote:
> > It is like streaming of an inherited form. Lookup the ancestor and write
> > the property differences.
>
> Nono, when streaming an inherited form, the IDE provides the ancestor
> instance when the streaming starts, because it calls writedescendent.
>
> When you have a frame inside a form IDE, the IDE cannot provide the
> ancestor of the frame: the streaming code must look for the original
> instance of the frame by itself. My guess is that this is done by
> setting the OnFindAncestor callback ?
>
Correct. Sorry that I didn't get your question right.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


RE: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Giulio Bernardi

> From: [EMAIL PROTECTED]
> To: fpc-devel@lists.freepascal.org
> Subject: RE: [fpc-devel] Important: Call for testing.
> Date: Sun, 30 Mar 2008 22:21:52 +
>
>
>> I have noticed another incompatibility with the previous version - the
>> TParser object in parser.inc can now return toWString as one of the
>> possibilities; the previous version returned toString regardless, but
>> offered a wide and normal version of the string. This change breaks
>> lazarus on wide strings. Which should be changed?
>
> toWString was missing, now it's more delphi compatible and you don't have
> to check every character of the widestring (returned with 
> TParser.TokenWideString) to determine if
> the string is really a wide or an ansi string.
> Note that now you still have a normal and wide version of the string  
> (TokenString / TokenWideString) but Token property can be toWString too.
> So the only needed change should be in checking for toWString too when 
> checking for toString. Ok, toWString is declared in trunk only, so you should 
> use an ifdef for now. However it will be merged to fixes_2_2 too, so the 
> ifdef will be only needed till 2.2.2 is released.
>

Maybe this patch (for lazarus) solves the issue? (warning: lazarus compiles and 
runs but I didn't test it).

Giulio

_
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE

parser_wstring_patch.diff.gz
Description: GNU Zip compressed data
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Martin Schreiber
On Sunday 30 March 2008 20.42:13 Michael Van Canneyt wrote:
> On Sun, 30 Mar 2008, Martin Schreiber wrote:

> > I'd like to second Colins wish. Please use the same resolving order as
> > Delphi. MSEide+MSEgui compiles with Delphi7 so the reversed order is an
> > unnecessary complication and error source.
>
> It's not a complication. Resolving order is and must be irrelevant. Until
> 'Loaded' is called, you're not supposed to make any assumptions about what
> property is and what property is not set, and hence also not about the
> order.
>
I am not convinced. By controlling the order of the properties and the load 
order of the forms it is possible to control the resolving order. Does FPC 
loose on quality if you use the same order as Delphi? It is possible that we 
don't know all future applications of resolving order at the moment, why 
should we give away compatibility if not necessary?
In my developments I try to constrict the possibilities as little as possible.
Often the users of our code do things we never thought. :-)

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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Michael Van Canneyt


On Mon, 31 Mar 2008, Martin Schreiber wrote:

> On Sunday 30 March 2008 20.48:23 Michael Van Canneyt wrote:
> > On Sun, 30 Mar 2008, Martin Schreiber wrote:
> > > Inline is used for subforms, components in a form which inherit from
> > > another form (TFrame in Delphi), in MSEgui every form can be used as
> > > inline component. The ffInline filer flag must be written and the
> > > ancestor must be looked up on writing and reading like inherited
> > > components.
> >
> > OK, So:
> >
> >  Form1 = TForm1
> >   Frame1 = TMyFrame [inline comes here somewhere]
> >   end
> >  end
> >
> > When Frame1 is streamed, where do I find TMyFrame ? It's Ancestor is not
> > being streamed ?
> >
> It is like streaming of an inherited form. Lookup the ancestor and write the 
> property differences. 

Nono, when streaming an inherited form, the IDE provides the ancestor
instance when the streaming starts, because it calls writedescendent.

When you have a frame inside a form IDE, the IDE cannot provide the 
ancestor of the frame: the streaming code must look for the original 
instance of the frame by itself. My guess is that this is done by 
setting the OnFindAncestor callback ?

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


Re: [fpc-devel] Important: Call for testing.

2008-03-31 Thread Martin Schreiber
On Sunday 30 March 2008 20.48:23 Michael Van Canneyt wrote:
> On Sun, 30 Mar 2008, Martin Schreiber wrote:
> > Inline is used for subforms, components in a form which inherit from
> > another form (TFrame in Delphi), in MSEgui every form can be used as
> > inline component. The ffInline filer flag must be written and the
> > ancestor must be looked up on writing and reading like inherited
> > components.
>
> OK, So:
>
>  Form1 = TForm1
>   Frame1 = TMyFrame [inline comes here somewhere]
>   end
>  end
>
> When Frame1 is streamed, where do I find TMyFrame ? It's Ancestor is not
> being streamed ?
>
It is like streaming of an inherited form. Lookup the ancestor and write the 
property differences. 
On reading TMyFrame is found by TReader.FindComponentClass (normally by 
GetFieldClass) as with non inlined child components. TMyFrame.Create loads 
the TMyFrame instance with the initial form resource data.

Martin

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


RE: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Giulio Bernardi

> I have noticed another incompatibility with the previous version - the 
> TParser object in parser.inc can now return toWString as one of the 
> possibilities; the previous version returned toString regardless, but 
> offered a wide and normal version of the string. This change breaks 
> lazarus on wide strings. Which should be changed?

toWString was missing, now it's more delphi compatible and you don't have
to check every character of the widestring (returned with 
TParser.TokenWideString) to determine if
the string is really a wide or an ansi string.
Note that now you still have a normal and wide version of the string  
(TokenString / TokenWideString) but Token property can be toWString too.
So the only needed change should be in checking for toWString too when checking 
for toString. Ok, toWString is declared in trunk only, so you should use an 
ifdef for now. However it will be merged to fixes_2_2 too, so the ifdef will be 
only needed till 2.2.2 is released.

Giulio
_
News, entertainment and everything you care about at Live.com. Get it now!
http://www.live.com/getstarted.aspx___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread C Western
I have noticed another incompatibility with the previous version - the 
TParser object in parser.inc can now return toWString as one of the 
possibilities; the previous version returned toString regardless, but 
offered a wide and normal version of the string. This change breaks 
lazarus on wide strings. Which should be changed?


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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Michael Van Canneyt


On Sun, 30 Mar 2008, Martin Schreiber wrote:

> On Sunday 30 March 2008 17.56:40 Michael Van Canneyt wrote:
> > On Sun, 30 Mar 2008, Martin Schreiber wrote:
> > > On Sunday 30 March 2008 01.32:09 Michael Van Canneyt wrote:
> > > Looks good, thanks. There is a problem with inline components:
> > > http://bugs.freepascal.org/view.php?id=11069
> > > Please delete 11068, it was posted private by accident.
> >
> > OK, I knew how to handle visual form inheritance so I could fix
> > 11067, but inline I have no idea what it is. Can you explain me
> > what needs to be done, and in what situations it is used ?
> >
> Inline is used for subforms, components in a form which inherit from another 
> form (TFrame in Delphi), in MSEgui every form can be used as inline 
> component. The ffInline filer flag must be written and the ancestor must be 
> looked up on writing and reading like inherited components.

OK, So:

 Form1 = TForm1
  Frame1 = TMyFrame [inline comes here somewhere]
  end
 end

When Frame1 is streamed, where do I find TMyFrame ? It's Ancestor is not being 
streamed ?

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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Michael Van Canneyt


On Sun, 30 Mar 2008, Martin Schreiber wrote:

> On Sunday 30 March 2008 18.08:24 Michael Van Canneyt wrote:
> > On Sun, 30 Mar 2008, C Western wrote:
> 
> > > Things now seem to work for me after a little adjustment. I don't know if
> > > it is intentional, but the order in which references are satisfied seems
> > > to have been reversed in the current version, which revealed a minor
> > > error in my code. I suspect I won't be the only one, so it might be kind
> > > to reverse the list to avoid similar problems.
> >
> > Nono, it's good that you fixed your bug.
> >
> > You should never rely on the loading order. For forms, for instance, it is
> > dependent on the creation in the IDE. A simple cut and paste could change
> > the order. Relying on this would be bad practice.
> >
> I'd like to second Colins wish. Please use the same resolving order as 
> Delphi. 
> MSEide+MSEgui compiles with Delphi7 so the reversed order is an unnecessary 
> complication and error source.

It's not a complication. Resolving order is and must be irrelevant. Until 
'Loaded' is called, you're not supposed to make any assumptions about what 
property is and what property is not set, and hence also not about the order. 

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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Martin Schreiber
On Sunday 30 March 2008 19.21:04 Vincent Snijders wrote:
> Martin Schreiber schreef:
> > Inline is used for subforms, components in a form which inherit from
> > another form (TFrame in Delphi), in MSEgui every form can be used as
> > inline component. The ffInline filer flag must be written and the
> > ancestor must be looked up on writing and reading like inherited
> > components.
> >
> >> Alternatively you can supply a patch ;-)
> >
> > I don't think I am "clean" enough...
>
> Alternatively, you can write the test case ;-)
>
I'll do. The first is 
http://bugs.freepascal.org/view.php?id=11069

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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Martin Schreiber
On Sunday 30 March 2008 18.08:24 Michael Van Canneyt wrote:
> On Sun, 30 Mar 2008, C Western wrote:

> > Things now seem to work for me after a little adjustment. I don't know if
> > it is intentional, but the order in which references are satisfied seems
> > to have been reversed in the current version, which revealed a minor
> > error in my code. I suspect I won't be the only one, so it might be kind
> > to reverse the list to avoid similar problems.
>
> Nono, it's good that you fixed your bug.
>
> You should never rely on the loading order. For forms, for instance, it is
> dependent on the creation in the IDE. A simple cut and paste could change
> the order. Relying on this would be bad practice.
>
I'd like to second Colins wish. Please use the same resolving order as Delphi. 
MSEide+MSEgui compiles with Delphi7 so the reversed order is an unnecessary 
complication and error source.

> > The other thing that struck me is that unsatisfied references do not
> > throw an error - shouldn't they? (It would have made fixing the error a
> > little easier) How about the following patch:
>
> Delphi doesn't throw an error either, and it should definitely not do so at
> the end of local reference resolving; At most this could be done after all
> loading is done, and you don't know when that is: forms can be created at
> any time...
>
Agreed.

Thanks, Martin
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Vincent Snijders

Martin Schreiber schreef:


Inline is used for subforms, components in a form which inherit from another 
form (TFrame in Delphi), in MSEgui every form can be used as inline 
component. The ffInline filer flag must be written and the ancestor must be 
looked up on writing and reading like inherited components.



Alternatively you can supply a patch ;-)


I don't think I am "clean" enough...



Alternatively, you can write the test case ;-)

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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Martin Schreiber
On Sunday 30 March 2008 17.56:40 Michael Van Canneyt wrote:
> On Sun, 30 Mar 2008, Martin Schreiber wrote:
> > On Sunday 30 March 2008 01.32:09 Michael Van Canneyt wrote:
> > Looks good, thanks. There is a problem with inline components:
> > http://bugs.freepascal.org/view.php?id=11069
> > Please delete 11068, it was posted private by accident.
>
> OK, I knew how to handle visual form inheritance so I could fix
> 11067, but inline I have no idea what it is. Can you explain me
> what needs to be done, and in what situations it is used ?
>
Inline is used for subforms, components in a form which inherit from another 
form (TFrame in Delphi), in MSEgui every form can be used as inline 
component. The ffInline filer flag must be written and the ancestor must be 
looked up on writing and reading like inherited components.

> Alternatively you can supply a patch ;-)
>
I don't think I am "clean" enough...

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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread C Western

Michael Van Canneyt wrote:

Nono, it's good that you fixed your bug.

You should never rely on the loading order. For forms, for instance, it is 
dependent on the creation in the IDE. A simple cut and paste could change 
the order. Relying on this would be bad practice.


  

Absolutely

The other thing that struck me is that unsatisfied references do not throw an
error - shouldn't they? (It would have made fixing the error a little easier)
How about the following patch:



Delphi doesn't throw an error either, and it should definitely not do so at the
end of local reference resolving; At most this could be done after all loading
is done, and you don't know when that is: forms can be created at any time...
  
It still seems strange not to throw an error. The point I suggested is 
the first time that it is definitely known that the local reference will 
never be resolved, as at that point the reference is simply thrown away 
if not resolved. (Or am I missing something?)


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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Michael Van Canneyt


On Sun, 30 Mar 2008, C Western wrote:

> Michael Van Canneyt wrote:
> > Indeed. It completely short-circuits the idea of trying to locally resolve
> > references before trying globally :)
> >
> > Anyway, your hint gave me the idea where to look.
> > I fixed the issue properly. The error was in another routine altogether.
> >
> > Hopefully now 11060 is really fixed.
> >   
> Things now seem to work for me after a little adjustment. I don't know if it
> is intentional, but the order in which references are satisfied seems to have
> been reversed in the current version, which revealed a minor error in my code.
> I suspect I won't be the only one, so it might be kind to reverse the list to
> avoid similar problems.

Nono, it's good that you fixed your bug.

You should never rely on the loading order. For forms, for instance, it is 
dependent on the creation in the IDE. A simple cut and paste could change 
the order. Relying on this would be bad practice.

> 
> The other thing that struck me is that unsatisfied references do not throw an
> error - shouldn't they? (It would have made fixing the error a little easier)
> How about the following patch:

Delphi doesn't throw an error either, and it should definitely not do so at the
end of local reference resolving; At most this could be done after all loading
is done, and you don't know when that is: forms can be created at any time...

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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Michael Van Canneyt


On Sun, 30 Mar 2008, Martin Schreiber wrote:

> On Sunday 30 March 2008 01.32:09 Michael Van Canneyt wrote:
> > On Sat, 29 Mar 2008, Martin Schreiber wrote:
> > > On Saturday 29 March 2008 21.52:51 Michael Van Canneyt wrote:
> > > >
> > > > Seems like the most obvious bugs are fixed.
> > > > Now I wait for the subtle ones to appear ;-)
> > >
> > > Here it is the first one:
> > > http://bugs.freepascal.org/view.php?id=11067
> > > (Wrong ancestor value in defineproperties).
> >
> > Seems fixed now.
> > I hope I have done it correct (your test program runs fine)
> > and didn't break anything else... :(
> >
> Looks good, thanks. There is a problem with inline components:
> http://bugs.freepascal.org/view.php?id=11069
> Please delete 11068, it was posted private by accident.

OK, I knew how to handle visual form inheritance so I could fix
11067, but inline I have no idea what it is. Can you explain me 
what needs to be done, and in what situations it is used ?

Alternatively you can supply a patch ;-)

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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Michael Van Canneyt


On Sun, 30 Mar 2008, Jonas Maebe wrote:

> 
> On 30 Mar 2008, at 01:32, Michael Van Canneyt wrote:
> >On Sat, 29 Mar 2008, Martin Schreiber wrote:
> >
> > >On Saturday 29 March 2008 21.52:51 Michael Van Canneyt wrote:
> > >
> > > > >Jesus just told me that it is fixed in  r10587.
> > > >
> > > >Great, I set the bug to resolved.
> > > >
> > > >Seems like the most obvious bugs are fixed.
> > > >Now I wait for the subtle ones to appear ;-)
> > > >
> > >Here it is the first one:
> > >http://bugs.freepascal.org/view.php?id=11067
> > >(Wrong ancestor value in defineproperties).
> >
> >Seems fixed now.
> 
> Can you also commit tests for these fixed bugs (11059, 11060, 11067) to svn?

I converted them to fpcunit tests while implementing, but since I don't know
yet how to handle those in the testsuite, I didn't commit them yet.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread C Western

Michael Van Canneyt wrote:
Indeed. It completely short-circuits the idea of trying to locally resolve 
references before trying globally :)


Anyway, your hint gave me the idea where to look.
I fixed the issue properly. The error was in another routine altogether.

Hopefully now 11060 is really fixed.
  
Things now seem to work for me after a little adjustment. I don't know 
if it is intentional, but the order in which references are satisfied 
seems to have been reversed in the current version, which revealed a 
minor error in my code. I suspect I won't be the only one, so it might 
be kind to reverse the list to avoid similar problems.


The other thing that struck me is that unsatisfied references do not 
throw an error - shouldn't they? (It would have made fixing the error a 
little easier) How about the following patch:


Colin


diff -uNr --exclude=.svn --exclude='*.rst' trunk/fpcsrc/rtl/objpas/classes/reader.inc trunk.w/fpcsrc/rtl/objpas/classes/reader.inc
--- trunk/fpcsrc/rtl/objpas/classes/reader.inc	2008-03-29 21:15:01.0 +
+++ trunk.w/fpcsrc/rtl/objpas/classes/reader.inc	2008-03-30 12:11:52.0 +0100
@@ -658,7 +658,9 @@
   begin
   G:=AddToResolveList(R.FInstance);
   G.Addreference(R.FRoot,R.FPropInfo,Copy(R.FRelative,1,P-1),Copy(R.FRelative,P+1,Length(R.FRelative)-P));
-  end;
+  end
+else
+  raise EReadError.CreateFmt(SResNotFound, [Ref]);
 end;
   L.RemoveItem(R,True);
   R:=RN;
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Jonas Maebe


On 30 Mar 2008, at 01:32, Michael Van Canneyt wrote:

On Sat, 29 Mar 2008, Martin Schreiber wrote:


On Saturday 29 March 2008 21.52:51 Michael Van Canneyt wrote:


Jesus just told me that it is fixed in  r10587.


Great, I set the bug to resolved.

Seems like the most obvious bugs are fixed.
Now I wait for the subtle ones to appear ;-)


Here it is the first one:
http://bugs.freepascal.org/view.php?id=11067
(Wrong ancestor value in defineproperties).


Seems fixed now.


Can you also commit tests for these fixed bugs (11059, 11060, 11067)  
to svn?



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


Re: [fpc-devel] Important: Call for testing.

2008-03-30 Thread Martin Schreiber
On Sunday 30 March 2008 01.32:09 Michael Van Canneyt wrote:
> On Sat, 29 Mar 2008, Martin Schreiber wrote:
> > On Saturday 29 March 2008 21.52:51 Michael Van Canneyt wrote:
> > >
> > > Seems like the most obvious bugs are fixed.
> > > Now I wait for the subtle ones to appear ;-)
> >
> > Here it is the first one:
> > http://bugs.freepascal.org/view.php?id=11067
> > (Wrong ancestor value in defineproperties).
>
> Seems fixed now.
> I hope I have done it correct (your test program runs fine)
> and didn't break anything else... :(
>
Looks good, thanks. There is a problem with inline components:
http://bugs.freepascal.org/view.php?id=11069
Please delete 11068, it was posted private by accident.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Michael Van Canneyt


On Sat, 29 Mar 2008, Martin Schreiber wrote:

> On Saturday 29 March 2008 21.52:51 Michael Van Canneyt wrote:
> 
> > > Jesus just told me that it is fixed in  r10587.
> >
> > Great, I set the bug to resolved.
> >
> > Seems like the most obvious bugs are fixed.
> > Now I wait for the subtle ones to appear ;-)
> >
> Here it is the first one:
> http://bugs.freepascal.org/view.php?id=11067
> (Wrong ancestor value in defineproperties).

Seems fixed now.
I hope I have done it correct (your test program runs fine) 
and didn't break anything else... :(

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Martin Schreiber
On Saturday 29 March 2008 21.52:51 Michael Van Canneyt wrote:

> > Jesus just told me that it is fixed in  r10587.
>
> Great, I set the bug to resolved.
>
> Seems like the most obvious bugs are fixed.
> Now I wait for the subtle ones to appear ;-)
>
Here it is the first one:
http://bugs.freepascal.org/view.php?id=11067
(Wrong ancestor value in defineproperties).

11060 seems to be fixed for MSEide too, thanks a lot.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Michael Van Canneyt


On Sat, 29 Mar 2008, Vincent Snijders wrote:

> Jesus Reyes A. schreef:
> > 
> > - Original Message - From: "C Western" <[EMAIL PROTECTED]>
> > To: "FPC developers' list" 
> > Sent: Saturday, March 29, 2008 11:04 AM
> > Subject: Re: [fpc-devel] Important: Call for testing.
> > 
> > 
> > > There also seems to be a problem with fixing up references to other
> > > components while reading - TLabel.FocusControl seems to be one of the
> > > things that is tripping this up. Local unresolved references are being
> > > silently discarded, but I think should be added to the global list. The
> > > attached patch fixes it for my application, but might not be the best
> > > general fix.
> > >
> > > Colin
> > >
> > This patch fixes issue 11060, however, while trying to open project's
> > compiler options dialog I get this:
> > 
> > 
> 
> 
> > Other dialogs seems to be fine though.
> > 
> 
> Jesus just told me that it is fixed in  r10587.

Great, I set the bug to resolved.

Seems like the most obvious bugs are fixed. 
Now I wait for the subtle ones to appear ;-)

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Vincent Snijders

Jesus Reyes A. schreef:


- Original Message - From: "C Western" <[EMAIL PROTECTED]>
To: "FPC developers' list" 
Sent: Saturday, March 29, 2008 11:04 AM
Subject: Re: [fpc-devel] Important: Call for testing.



There also seems to be a problem with fixing up references to other
components while reading - TLabel.FocusControl seems to be one of the
things that is tripping this up. Local unresolved references are being
silently discarded, but I think should be added to the global list. The
attached patch fixes it for my application, but might not be the best
general fix.

Colin

This patch fixes issue 11060, however, while trying to open project's 
compiler options dialog I get this:







Other dialogs seems to be fine though.



Jesus just told me that it is fixed in  r10587.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Michael Van Canneyt


On Sat, 29 Mar 2008, C Western wrote:

> There also seems to be a problem with fixing up references to other components
> while reading - TLabel.FocusControl seems to be one of the things that is
> tripping this up. Local unresolved references are being silently discarded,
> but I think should be added to the global list. The attached patch fixes it
> for my application, but might not be the best general fix.

Indeed. It completely short-circuits the idea of trying to locally resolve 
references before trying globally :)

Anyway, your hint gave me the idea where to look.
I fixed the issue properly. The error was in another routine altogether.

Hopefully now 11060 is really fixed.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Jesus Reyes A.


- Original Message - 
From: "C Western" <[EMAIL PROTECTED]>

To: "FPC developers' list" 
Sent: Saturday, March 29, 2008 11:04 AM
Subject: Re: [fpc-devel] Important: Call for testing.



There also seems to be a problem with fixing up references to other
components while reading - TLabel.FocusControl seems to be one of the
things that is tripping this up. Local unresolved references are being
silently discarded, but I think should be added to the global list. The
attached patch fixes it for my application, but might not be the best
general fix.

Colin

This patch fixes issue 11060, however, while trying to open project's 
compiler options dialog I get this:


TApplication.HandleException Cannot focus a disabled or invisible window
 Stack trace:
 $0041910F  TCUSTOMFORM__SETACTIVECONTROL,  line 1264 of 
../include/customform.i

nc
 $004843DB  SETORDPROP,  line 938 of 
E:/fpcsvn/fpcmirror/rtl/objpas/typinfo.pp
 $00484754  SETOBJECTPROP,  line 1096 of 
E:/fpcsvn/fpcmirror/rtl/objpas/typinfo

..pp
 $004657BE  TUNRESOLVEDREFERENCE__RESOLVE,  line 233 of 
E:/fpcsvn/fpcmirror/rtl

/objpas/classes/resref.inc
 $0046596A  TUNRESOLVEDINSTANCE__RESOLVEREFERENCES,  line 287 of 
E:/fpcsvn/fpcm

irror/rtl/objpas/classes/resref.inc
 $00465DD4  TRESOLVEREFERENCEVISITOR__VISIT,  line 453 of 
E:/fpcsvn/fpcmirror/r

tl/objpas/classes/resref.inc
 $00465416  TLINKEDLIST__FOREACH,  line 92 of 
E:/fpcsvn/fpcmirror/rtl/objpas/cl

asses/sllist.inc
 $00465654  VISITRESOLVELIST,  line 131 of 
E:/fpcsvn/fpcmirror/rtl/objpas/class

es/resref.inc
 $004656DD  GLOBALFIXUPREFERENCES,  line 151 of 
E:/fpcsvn/fpcmirror/rtl/objpas/

classes/resref.inc
 $0046C6DA  TREADER__READROOTCOMPONENT,  line 1299 of 
E:/fpcsvn/fpcmirror/rtl/o

bjpas/classes/reader.inc
 $004BDCAD  INITCOMPONENT,  line 2746 of lresources.pp
 $004BDB0F  INITLAZRESOURCECOMPONENT,  line 2766 of lresources.pp
 $004B8DF7  INITRESOURCECOMPONENT,  line 542 of lresources.pp
 $0041957D  TCUSTOMFORM__CREATE,  line 1377 of ./include/customform.inc
 $0041AE26  TFORM__CREATE,  line 2115 of ./include/customform.inc
 $007668BA  TFRMCOMPILEROPTIONS__CREATE,  line 294 of compileroptionsdlg.pp
 $0042F612  TMAINIDE__MNUPROJECTCOMPILERSETTINGSCLICKED,  line 3516 of 
main.pp


Other dialogs seems to be fine though.

Jesus Reyes A.


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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread C Western
There also seems to be a problem with fixing up references to other 
components while reading - TLabel.FocusControl seems to be one of the 
things that is tripping this up. Local unresolved references are being 
silently discarded, but I think should be added to the global list. The 
attached patch fixes it for my application, but might not be the best 
general fix.


Colin
diff -uNr --exclude=.svn --exclude='*.rst' trunk/fpcsrc/rtl/objpas/classes/reader.inc trunk.w/fpcsrc/rtl/objpas/classes/reader.inc
--- trunk/fpcsrc/rtl/objpas/classes/reader.inc	2008-03-29 16:56:06.0 +
+++ trunk.w/fpcsrc/rtl/objpas/classes/reader.inc	2008-03-29 16:57:37.0 +
@@ -630,7 +630,7 @@
 procedure TReader.DoFixupReferences;
 
 Var
-  R,RN : TLocalUnresolvedReference;
+  R : TLocalUnresolvedReference;
   G : TUnresolvedInstance;
   Ref : String;
   C : TComponent;
@@ -644,7 +644,6 @@
 R:=TLocalUnresolvedReference(L.Root);
 While (R<>Nil) do
   begin
-  RN:=TLocalUnresolvedReference(R.Next);
   Ref:=R.FRelative;
   If Assigned(FOnReferenceName) then
 FOnReferenceName(Self,Ref);
@@ -654,14 +653,10 @@
   else
 begin
 P:=Pos('.',R.FRelative);
-If (P<>0) then
-  begin
-  G:=AddToResolveList(R.FInstance);
-  G.Addreference(R.FRoot,R.FPropInfo,Copy(R.FRelative,1,P-1),Copy(R.FRelative,P+1,Length(R.FRelative)-P));
-  end;
+G:=AddToResolveList(R.FInstance);
+G.Addreference(R.FRoot,R.FPropInfo,Copy(R.FRelative,1,P-1),Copy(R.FRelative,P+1,Length(R.FRelative)-P));
 end;
-  L.RemoveItem(R,True);
-  R:=RN;
+  R:=TLocalUnresolvedReference(R.Next);
   end;
 FreeAndNil(FFixups);
 end;
diff -uNr --exclude=.svn --exclude='*.rst' trunk/fpcsrc/rtl/objpas/classes/resref.inc trunk.w/fpcsrc/rtl/objpas/classes/resref.inc
--- trunk/fpcsrc/rtl/objpas/classes/resref.inc	2008-03-28 09:19:50.0 +
+++ trunk.w/fpcsrc/rtl/objpas/classes/resref.inc	2008-03-29 16:57:37.0 +
@@ -220,7 +220,10 @@
   C : TComponent;
 
 begin
-  C:=FindGlobalComponent(FGlobal);
+  if FGlobal <> '' then
+C:=FindGlobalComponent(FGlobal)
+  else
+C:=FRoot;
   Result:=(C<>Nil);
   If Result then
 begin
@@ -229,7 +232,7 @@
 If Result then
   SetObjectProp(Instance, FPropInfo,C);
 end;
-end; 
+end;
 
 Function TUnresolvedReference.RootMatches(ARoot : TComponent) : Boolean; Inline;
 
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Michael Van Canneyt


On Sat, 29 Mar 2008, C Western wrote:

> There seems to be a problem in TReader.FindComponentClass - the search in
> FindInFieldTable does not properly include ancestors.

Great, I applied the patch. This should probably fix issue 11060 !

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread C Western
There seems to be a problem in TReader.FindComponentClass - the search 
in FindInFieldTable does not properly include ancestors.


See attached patch

Colin
diff -uNr --exclude=.svn --exclude='*.rst' trunk/fpcsrc/rtl/objpas/classes/reader.inc trunk.w/fpcsrc/rtl/objpas/classes/reader.inc
--- trunk/fpcsrc/rtl/objpas/classes/reader.inc	2008-03-28 09:19:50.0 +
+++ trunk.w/fpcsrc/rtl/objpas/classes/reader.inc	2008-03-29 13:38:54.0 +
@@ -1470,7 +1470,7 @@
 // descendants of TComponent
 while ComponentClassType<>TComponent do begin
   FieldClassTable :=
-PFieldTable((Pointer(RootComponent.ClassType)+vmtFieldTable)^)^.ClassTable;
+PFieldTable((Pointer(ComponentClassType)+vmtFieldTable)^)^.ClassTable;
   if assigned(FieldClassTable) then begin
 for i := 0 to FieldClassTable^.Count -1 do begin
   Entry := FieldClassTable^.Entries[i];
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Vincent Snijders

Vincent Snijders schreef:

Michael Van Canneyt schreef:


There still is a memleak in the reader, when starting and stopping 
Lazarus:

333861 memory blocks allocated : 48899445/49814032
333803 memory blocks freed : 48898000/49812384
58 unfreed memory blocks : 1445


I think I plugged that one (Vincent: we had it in the tests too, if 
you recall). Can you test please ? If it persists, please send me the 
heaptrc output,

that will make searching easier.



It is not yet fixed. I sent heaptrc to you privately.




Fixed in 10583:
Heap dump by heaptrc unit
338700 memory blocks allocated : 45274460/46194864
338700 memory blocks freed : 45274460/46194864
0 unfreed memory blocks : 0

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Vincent Snijders

Michael Van Canneyt schreef:



There still is a memleak in the reader, when starting and stopping Lazarus:
333861 memory blocks allocated : 48899445/49814032
333803 memory blocks freed : 48898000/49812384
58 unfreed memory blocks : 1445


I think I plugged that one (Vincent: we had it in the tests too, if you recall). 
Can you test please ? If it persists, please send me the heaptrc output,

that will make searching easier.



It is not yet fixed. I sent heaptrc to you privately.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-29 Thread Michael Van Canneyt


On Fri, 28 Mar 2008, Vincent Snijders wrote:

> Martin Schreiber schreef:
> > On Thursday 27 March 2008 21.50:33 Michael Van Canneyt wrote:
> > > While extensive testing has been done (using the FPCunit testing
> > > framework), and the working of Lazarus with this new code was verified, it
> > > is possible that bugs remain. We would therefor very much appreciate that
> > > if you have code that uses some of the routines below, that you test your
> > > code with the latest FPC from subversion (revision 10572 or above) and
> > > report any bugs that you may encounter. If you do, please submit a
> > > bugreport in mantis:
> > >
> > > http://bugs.freepascal.org/
> > >
> > http://bugs.freepascal.org/view.php?id=11059
> > Does this cause no problems for Lazarus?
> >

11059 should be fixed.

> 
> I added this and 11060 to the cleanroom page.
> http://wiki.lazarus.freepascal.org/FPC_Cleanroom#Bug_reports
> 
> There still is a memleak in the reader, when starting and stopping Lazarus:
> 333861 memory blocks allocated : 48899445/49814032
> 333803 memory blocks freed : 48898000/49812384
> 58 unfreed memory blocks : 1445

I think I plugged that one (Vincent: we had it in the tests too, if you 
recall). 
Can you test please ? If it persists, please send me the heaptrc output,
that will make searching easier.

11060 is a harder nut to crack, though.

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


Re: [fpc-devel] Important: Call for testing.

2008-03-28 Thread Vincent Snijders

Martin Schreiber schreef:

On Thursday 27 March 2008 21.50:33 Michael Van Canneyt wrote:

While extensive testing has been done (using the FPCunit testing
framework), and the working of Lazarus with this new code was verified, it
is possible that bugs remain. We would therefor very much appreciate that
if you have code that uses some of the routines below, that you test your
code with the latest FPC from subversion (revision 10572 or above) and
report any bugs that you may encounter. If you do, please submit a
bugreport in mantis:

http://bugs.freepascal.org/


http://bugs.freepascal.org/view.php?id=11059
Does this cause no problems for Lazarus?



I added this and 11060 to the cleanroom page.
http://wiki.lazarus.freepascal.org/FPC_Cleanroom#Bug_reports

There still is a memleak in the reader, when starting and stopping Lazarus:
333861 memory blocks allocated : 48899445/49814032
333803 memory blocks freed : 48898000/49812384
58 unfreed memory blocks : 1445

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


Re: [fpc-devel] Important: Call for testing.

2008-03-28 Thread Vincent Snijders

Martin Schreiber schreef:

On Thursday 27 March 2008 21.50:33 Michael Van Canneyt wrote:



http://bugs.freepascal.org/view.php?id=11059
Does this cause no problems for Lazarus?



Yes, it does. I didn't notice before though.

It is a problem for non-control TComponent you drop on a form, like a 
TOpenDialog.


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


Re: [fpc-devel] Important: Call for testing.

2008-03-28 Thread Martin Schreiber
On Thursday 27 March 2008 21.50:33 Michael Van Canneyt wrote:
>
> While extensive testing has been done (using the FPCunit testing
> framework), and the working of Lazarus with this new code was verified, it
> is possible that bugs remain. We would therefor very much appreciate that
> if you have code that uses some of the routines below, that you test your
> code with the latest FPC from subversion (revision 10572 or above) and
> report any bugs that you may encounter. If you do, please submit a
> bugreport in mantis:
>
> http://bugs.freepascal.org/
>
http://bugs.freepascal.org/view.php?id=11059
Does this cause no problems for Lazarus?

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


[fpc-devel] Important: Call for testing.

2008-03-27 Thread Michael Van Canneyt

Hello,

at the end of last year, the FPC team was notified that certain portions
of the FPC codebase contained possible copyright infringements on copyrighted
code from Codegear (Borland). 

As a precaution, an internal audit was done by the FPC team using an 
automated tool, and a list of routines was compiled that could possibly 
be considered a copyright infringement. The complete list is at the end 
of this mail.

It was decided that these routines should be re-implemented with cleanroom
implementations, to remove all suspicion from the FPC codebase.

The FPC team has now finally completed creating cleanroom implementations, 
and the implementations have been committed to the main branch (trunk) of 
the FPC codebase. Later, these will be merged to the fixes branch, and release
2.2.2 will be created with this implementation.

While extensive testing has been done (using the FPCunit testing framework),
and the working of Lazarus with this new code was verified, it is possible 
that bugs remain. We would therefor very much appreciate that if you have code
that uses some of the routines below, that you test your code with the latest
FPC from subversion (revision 10572 or above) and report any bugs that you may
encounter. If you do, please submit a bugreport in mantis:

http://bugs.freepascal.org/

We'll give the code 2 weeks to be tested, and unless major problems pop up,
the code will be merged to the fixes branch, and then release 2.2.2 will be
started with this code. It is therefor vital that the code be tested very 
well, as it will definitely end up in the next release.

For the FPC team,

Michael.

---

Complete list of replaced routines:

Classes unit:
-

ExtractStrings
TParser.TokenComponentIdent
TParser.NextToken
TWriter.WriteComponent
TWriter.WriteComponentData
TWriter.WriteProperties
TStringList.Grow
TStringList.QuickSort
TStringList.Find
FindNestedComponent
GlobalFixupReferences
GetFixupInstanceNames
RemoveFixupReferences 
RedirectFixupReferences
GetFixupInstanceNames
RemoveGlobalFixup
RemoveFixups
TReader.DoFixupReferences
TReader.FindComponentClass
TReader.ReadCollection
TList.Extract
TFPList.Assign
TCollection.GetNamePath

Strutils unit:
--
SearchBuf
DecodeSoundexInt

Varutils unit:
--
DoVarClearArray

Math unit:
--
MomentSkewKurtosis

ComObj unit:

HandleSafeCallException

DB unit:

TDataset.CalculateFields
TDataset.DataEvent
TDataset.EnableControls
TDataLink.CalcFirstRecord
TField.CalcLookupValue
TField.RefreshLookupList
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel