Closed Bug 301413 Opened 19 years ago Closed 19 years ago

Valid bindings generate MDG loop warning

Categories

(Core Graveyard :: XForms, defect)

x86
All
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: aaronr, Assigned: allan)

Details

Attachments

(2 files, 2 obsolete files)

I simplified down a testcase that was showing a group that should have been
hidden since it was disabled.  I notice a warning in the .exe's output:
"WARNING: XForms: There are loops in the MDG".  I was running with the patch for
301168, too.

Allan, since it is a warning in the MDG, could you take a look at it?
Attached file testcase (obsolete) —
by altering any number of things in the testcase source, the testcase will
begin to work.	Like the relevancy expression in the first bind will always
equate to "true()", and if I use "true()", then I no longer see the problem. 
And if I change an unused bind (use3dont) to point to another unused node like
/root/useArray/use[2]/do, then the problem will stop occurring.  Really weird.
(In reply to comment #0)
> Allan, since it is a warning in the MDG, could you take a look at it?

Will do.
Status: NEW → ASSIGNED
Assignee: aaronr → allan
Status: ASSIGNED → NEW
Summary: disabled group still showing with MDG loop warning → Valid bindings generate MDG loop warning
Attached file Reduced testcase
Attachment #189869 - Attachment is obsolete: true
The problem was that nsXFormsMDGEngine::AddMIP() was adding the dependencies of
a MIP as dependencies of the same type as itself. Fx.: a relevant was dependent
on another node's relevant property. That's incorrect, it should always depend
on the other node's calculate property (as it is the only one influencing
it...).
Attachment #190402 - Flags: review?(smaug)
(In reply to comment #4)
> Created an attachment (id=190402) [edit]
> One-line fix (including some extra debug)

Pretend there's a comment explaining that in AddMIP() :) I'll add it before
check in.
 
> The problem was that nsXFormsMDGEngine::AddMIP() was adding the dependencies of
> a MIP as dependencies of the same type as itself. Fx.: a relevant was dependent
> on another node's relevant property. That's incorrect, it should always depend
> on the other node's calculate property (as it is the only one influencing
> it...).

Attachment #190402 - Attachment is obsolete: true
Attachment #190403 - Flags: review?(smaug)
Attachment #190402 - Flags: review?(smaug)
Attachment #190403 - Flags: review?(smaug) → review+
Attachment #190403 - Flags: review+
checked in
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
I think there's still a bug though. If the MIPs were calculates the MDG would
say there's a loop, even though there's not. This is a problem with the way the
MDG finds dependencies.
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: