Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD Beta Forum
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Jul 20, 2009 5:22 pm   

v3.10 planned for this Friday
 
Given all of the crashes that are happening with the new mapper and room properties windows, I'll be doing another version update on Friday to fix as many of the issues that I can reproduce. I'll also improve the performance of the PKG conversion code and add a progress bar.

Please try to provide detailed procedures for as many of the bugs that you can. The easier it is for me to reproduce a problem, the better the chance of getting it fixed.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Jul 24, 2009 10:41 pm   
 
Sorry, but I got more bug reports than I could fix this week. I asked for detailed bug reports, and I got them, so I guess I just need to be careful what I ask for ;)

Anyway, I'm not going to get 3.10 released today (Friday) as planned. I'll continue working on Monday to see if I can do an early-week release instead of waiting till the end of the week. There is a bit of pressure on me for this because the 3.08 beta version will expire on August 1st, and I don't believe 3.09 is good enough to force people to upgrade. So I'd really like to get a better beta released before 3.08 expires.

Right now I'm just dealing with tons of crashes from various pointers within the new map data structure. If you looked at the UML diagram that I posted in one of the previous rant threads about trying to get the new mapper working properly, you'd see that all of the references in the diagram are "unmanaged" references. For example, the TMapNode (the map database) has a pointer to the matching Map Object (Map ModuleRec) in the package. So if you delete the Map Object in the settings editor, the TMapNode that contains a reference to this map object also needs to be removed. But there might be Map Windows that point to this TMapNode database, so those Map Windows also need to be removed. There might be multiple Location Objects that point to this TMapNode, and they all need to be removed too.

Because this data structure is so complex and intertwined, it's easy to miss a references. For example, if a pointer to a cleared Location Object still remains in a session, then any reference to that object will cause an access violation.

To make matters worse, performing an action like closing the map window requires the window docking system to remove the docked panel that contains the map. And the window docking system is a very complicated 3rd party component that uses Windows messages extensively to perform it's work. One bug I ran into today was causing a Windows Paint message to still get sent to the map window. Then the map window was removed, so when the Paint message finally got processed by Windows, the map window no longer existed, which causes an access violation (this is one reason I tend to hate using Windows messages because you can easily run into cases where there is a message waiting in the Windows message queue for an object that no longer exists in memory).

A similar complication was causing the crash with the new code that clears out the ANSI/VT100 color attributes for lines on the screen. The "Resize" Windows message is handled in CMUD to recalculate the word-wrap within a window. The act of closing a window calls the Docking system to remove the docked panel. The way the 3rd party implements this is to first set the size of the docked window to zero. So this sends the Windows WM_RESIZE message to the session window, which then tries to recalculate the word-wrap. But at this point the session window is partially removed from memory, and specifically, the attribute buffer for the current line no longer exists. So trying to access that buffer to clear the attribute records was causing another access violation.

That's the flavor of bugs that I have been fixing the past few days. I've made good progress, but I still have similar issues to fix with the Room Properties windows.

I wanted to thank Vijilante for his bug reports this week. Even though it was those bug reports that probably prevented me getting a release out, his bug reports concerned some very basic low-level issues, such as "what happens if you delete the Map Object in the settings editor". And it's those kind of bugs that were very helpful in discovering just which pointers were not being freed properly from the various objects in the mapper architecture.

Feel free to keep reporting bugs over the weekend. I'll do my best to fix as many as I can early next week. Thanks for your patience!
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Jul 27, 2009 11:32 pm   
 
v3.10 is now available. Remember to create NEW POSTS for any new bug reports. Let me know if this version solves most of the mapper crashes from 3.09.
Reply with quote
ReedN
Wizard


Joined: 04 Jan 2006
Posts: 1279
Location: Portland, Oregon

PostPosted: Tue Jul 28, 2009 6:16 am   
 
Zugg wrote:
Let me know if this version solves most of the mapper crashes from 3.09.

It does, at least for me. I was able to use this version for many hours of testing and had only 2 crashes.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD Beta Forum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net