<x-tad-bigger>____________________________
Chris Pelkie
Vice President (607) 257-8335
Conceptual Reality Presentations, Inc.
30 West Meadow Drive
Ithaca, NY 14850</x-tad-bigger>
On Feb 25, 2005, at 9:55, Marco Morandini wrote:
I've spent the last two days spotting the reason
of a different behaviour between 4.2.0 and
4.3.3.
The visual program that trigger the difference
adds an invalid positions component to a field;
in the same field, some (but not all) of the positions values
are referenced by a connection.
The problem is that DXInvalidateUnreferencedPositions is called
by DXChangedComponentValues, thus invalidating some
valid positions. This is not what happens in 4.2.0,
where DXInvalidateUnreferencedPositions is not called.
Having understood the reason of the different behaviour
it is easy to "fix" the visual program removing
the connection, adding the invalid position and then
re-adding the connection component.
However, It's not clear to me why
DXInvalidateUnreferencedPositions should be called.
Is this patch safe?
Index: helper.c
===================================================================
RCS file: /src/master/dx/src/exec/libdx/helper.c,v
retrieving revision 1.8
diff -u -r1.8 helper.c
--- helper.c 18 Aug 2003 19:37:28 -0000 1.8
+++ helper.c 25 Feb 2005 14:41:27 -0000
@@ -504,7 +504,6 @@
if (DXGetComponentValue(f, "connections"))
{
DXInvalidateConnections((Object)f);
- DXInvalidateUnreferencedPositions((Object)f);
DXChangedComponentValues(f, "connections");
}
DXChangedComponentValues(f, "positions");
Thanks,
Marco Morandini