MaXML 2.0 Released!

BlitzMax Forums/BlitzMax Programming/MaXML 2.0 Released!

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

I'm getting problems with this in Release mode. I have a loop which loops through all the nodes which are children of the root node.

   Local node:xmlNode=root.FirstChild()
   While node <> Null
      If node.Name = "ImagePackImage" Then
         ' DO STUFF
      Else
         Debug_Log "INVALID NODE TYPE"+node.Name
      End If
      node = node.NextSibling()
      If node=Null
         Debug_Log "FOUND LAST NODE"
      End If
   Wend


In debug mode, it works fine and finds every node. In release mode, it stops finding nodes long before it finds the last one. It does not error in my code ( verified because "FOUND LAST NODE" is written to my custom debuglog ( since there is no Blitz debuglog in Release mode )

Any idea why NextSibling might start returning a null node in release mode and not in debug? I've checked the XML file and it's great. It was also created with your module.


EDIT: I'm debugging your module as best I can, and will post more info as I find it.

Specifically, NextSibling is returning Null because it believes the node I pass to it does not have a parent, which of course it must or it would never have been returned as a sibling the time before :/

EDIT2: I've tried rewriting my code to use ChildCount() and GetChild() but that works perfectly in debug mode and just MAV's in Release mode. Presumably for a similar or the same reason.