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
Arde
Enchanter


Joined: 09 Sep 2007
Posts: 605

PostPosted: Thu Jul 30, 2009 6:47 pm   

[Fixed?][3.10a] AV for duplicated mapper window after conversion from 3.08
 
Code:

date/time         : 2009-07-30, 22:36:35, 921ms
operating system  : Windows XP Service Pack 2 build 2600
system up time    : 1 hour 12 minutes
program up time   : 18 seconds
processors        : 2x Intel(R) Pentium(R) D CPU 3.40GHz
physical memory   : 867/2046 MB (free/total)
free disk space   : (D:) 44,33 GB
display mode      : 1680x1050, 32 bit
process id        : $678
allocated memory  : 41,87 MB
executable        : cMUD.exe
exec. date/time   : 2009-07-29 02:46
version           : 3.10.0.1
compiled with     : BCB 2006/07
madExcept version : 3.0h
callstack crc     : $c3450884, $5d8ab076, $5d8ab076
count             : 3
exception number  : 1
exception class   : EAccessViolation
exception message : Access violation at address 00CF1AED in module 'cMUD.exe'. Read of address 00000194.

Main ($e94):
00cf1aed +035 cMUD.exe   MapNew3   3020  +2 TNewMapF.ActionKeyboardUpdate
0047b75b +00f cMUD.exe   Classes            TBasicAction.Update
004cbd0d +031 cMUD.exe   ActnList           TContainedAction.Update
0047b651 +005 cMUD.exe   Classes            TBasicActionLink.Update
00692473 +027 cMUD.exe   dxBar    21996  +1 TdxBarItemLink.InitiateAction
006937f3 +01f cMUD.exe   dxBar    22659  +1 TdxBarItemLinks.InitiateActions
0069d060 +04c cMUD.exe   dxBar    28108  +7 TCustomdxBarControl.DoSetIsActive
006a81d1 +005 cMUD.exe   dxBar    33847  +1 TdxBarSubMenuControl.DoSetIsActive
0069ade8 +040 cMUD.exe   dxBar    26948  +3 TCustomdxBarControl.SetIsActive
006a757c +02c cMUD.exe   dxBar    33482  +6 TdxBarSubMenuControl.CreateWnd
004c1502 +0ce cMUD.exe   Controls           TWinControl.SetBounds
004be18a +016 cMUD.exe   Controls           TWinControl.CreateHandle
004c1b30 +01c cMUD.exe   Controls           TWinControl.HandleNeeded
004c1b3d +005 cMUD.exe   Controls           TWinControl.GetHandle
006a9900 +060 cMUD.exe   dxBar    34569 +11 TdxBarSubMenuControl.DoShow
006aa071 +0ed cMUD.exe   dxBar    34776 +22 TdxBarSubMenuControl.Show
006b7dd2 +0b6 cMUD.exe   dxBar    42686 +14 TdxBarSubItemControl.ShowSubMenuControl
006b7b43 +03b cMUD.exe   dxBar    42615  +5 TdxBarSubItemControl.DoDropDown
006b517c +0a0 cMUD.exe   dxBar    41178 +18 TdxBarButtonLikeControl.ControlActivate
006b7960 +018 cMUD.exe   dxBar    42557 +14 TdxBarSubItemControl.ControlActivate
0069e3da +14e cMUD.exe   dxBar    28841 +19 TCustomdxBarControl.SetMouseSelectedItem
0069cdec +0d0 cMUD.exe   dxBar    28014 +27 TCustomdxBarControl.DoBarMouseMove
006a26bd +2c1 cMUD.exe   dxBar    31020 +69 TdxBarControl.DoBarMouseMove
0069b9ba +0b2 cMUD.exe   dxBar    27376  +9 TCustomdxBarControl.MouseMove
004bb8be +06e cMUD.exe   Controls           TControl.WMMouseMove
0069b392 +026 cMUD.exe   dxBar    27187  +3 TCustomdxBarControl.WMMouseMove
004bb023 +2bb cMUD.exe   Controls           TControl.WndProc
004bf027 +4fb cMUD.exe   Controls           TWinControl.WndProc
0069be8c +25c cMUD.exe   dxBar    27508 +52 TCustomdxBarControl.WndProc
006a2c7f +147 cMUD.exe   dxBar    31225 +52 TdxBarControl.WndProc
004be750 +02c cMUD.exe   Controls           TWinControl.MainWndProc
0047c400 +014 cMUD.exe   Classes            StdWndProc
77d3bcc7 +00a USER32.dll                    DispatchMessageA
004a96fc +0fc cMUD.exe   Forms              TApplication.ProcessMessage
004a9736 +00a cMUD.exe   Forms              TApplication.HandleMessage
004a9a2b +0b3 cMUD.exe   Forms              TApplication.Run
00e0015c +088 cMUD.exe   CMUD       352 +20 initialization
7c91312f +069 ntdll.dll                     RtlUnicodeStringToAnsiString



INTRODUCTION.
I have a session, once it was my primary session, but now it is frozen and I do not write scripts for it. But I do load it offline within each new beta version to see how CMUD works with moderate-size package and test new features.

WHAT I HAD BEFORE THIS RUN OF CMUD 3.10a?
A session, lastly opened in 3.08: the main session window, 2 groups of additional tabbed windows docked to the main, status window docked to the main, mapper window docked to the main.

WHAT HAPPENED?
Upon start of CMUD 3.10a, it did all the conversion normally. Then it draws all windows as they were in 3.08 except the mapper window - it was blank (no map was loaded, 3.08 had "Load map on startup" option checked). Investigating the "Window" menu from the CMUD main menu I've noticed that I have 2 mapper windows in this session. I had only 1 mapper window in 3.08.

Now, let's say my session is named "MySession". In 3.08 the caption of the mapper window was "Map for MySession". In 3.10a that docked window is empty. My map file is named "MySessionMap.mdb(dbm)". In 3.10a I have mapper window with caption "MySessionMap Map" hidden with my map loaded. So in 3.10a I have 2 mapper windows - old empty "Map for MySession" window and hidden "MySessionMap Map" window with loaded map.

Additionally, 3,10a automatically creates Room properties window for the "MySessionMap Map" mapper window (I can see it in the "Window" menu too). If I manually load my map to my original mapper window, then I'll be able to open another Room properties window from it - there will be 2 Room properties windows in the "Window" menu.

HOW I GOT THIS AV ERROR?
Just loaded my session offline, from the "Window" menu I chose "MySessionMap Map" to bring up hidden mapper window with my map loaded. Then I clicked on the menu in my original docked mapper window "Map for MySession" and just hover mouse pointer above top-level menu items. After 2 seconds I've got this error popped up.

Maybe CMUD should try to remove old mapper window if it want to open another window?
_________________
My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads

Last edited by Arde on Mon Aug 10, 2009 7:16 pm; edited 1 time in total
Reply with quote
Doxedon
Novice


Joined: 01 Dec 2007
Posts: 49

PostPosted: Fri Jul 31, 2009 11:42 am   
 
I think the bug I posted as a Search bug is actually this, and search is playing havoc with focusing the window/mapper?

Here's a pic of the "maps" i'm using.. Note: I'm not utilising the the mapper at all at this point. Don't have a map object in my setting either. Nor do I open the Mapper window in play.

Hope it helps..

Related thread: http://forums.zuggsoft.com/forums/viewtopic.php?t=33795

Reply with quote
Zugg
MASTER


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

PostPosted: Fri Jul 31, 2009 4:21 pm   
 
First, go into the Settings Editor and delete any extra Map objects. Now exit CMUD and restart CMUD and then hold down the SHIFT Key when clicking the Open Offline option. This will recreate your layout file and will get rid of all of the hidden docked mapper windows that you showed in your screenshot above.

Now keep an eye on your Settings Editor and if you find a procedure for creating a duplicate map object, or if you find a procedure to create a duplicate map window in the Window menu, then post the procedure.

But once you get lots of windows like that, CMUD is going to save them in your layout. Your Window menu screenshot is showing that you have lots of hidden mapper windows within your layout, and those won't go away until you reset the layout as I described. Then we can focus on how to reproduce the problem that led to this condition.
Reply with quote
Arde
Enchanter


Joined: 09 Sep 2007
Posts: 605

PostPosted: Fri Jul 31, 2009 6:42 pm   
 
I know about magical SHIFT key, but thought using it instead of bug reporting will be not fair for those who will upgrade theirs 2.XX sessions to 3.XX.

Ok, holding Shift key made things worse. Now I have 2 hidden "MySession Map" windows (each has the same map loaded) and visible mapper window with "Mapper" caption. Not "Automapper", but "Mapper". Same thing in the Window menu - "Mapper" If I bring up these 2 hidden mapper windows, they works normally, although I did not create them. And the empty "Mapper" window is the thing that makes AV errors, exactly the same I post in the beginning of this topic.

N.B. I have only 1 Map object.
_________________
My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads
Reply with quote
Arde
Enchanter


Joined: 09 Sep 2007
Posts: 605

PostPosted: Fri Jul 31, 2009 7:24 pm   
 
Additionally, I've deleted layout file and ran CMUD. Now, there was only 1 hidden mapper window "Mapper". I selected it from the Window menu and load my map through the "File\Open..." menu. My map has been loaded normally. Then, I've saved my layout and restarted CMUD. On session startup I saw "Loading map" (or whatever) progress bar, but after session has been loaded I see empty "Mapper" window again. My map was loaded to another mapper window (hidden). And visible empty "Mapper" window produces the same AVs again.
Summarizing on that, CMUD sees that it must load a map on startup, but it fails to see existing mapper window. This results in creation of a hidden mapper window.
_________________
My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads
Reply with quote
Arde
Enchanter


Joined: 09 Sep 2007
Posts: 605

PostPosted: Fri Jul 31, 2009 7:41 pm   
 
Hmm, this simple procedure reproduces the problem for me:
1) Run CMUD, create a new session, save it, open offline
2) From the "Window" menu select "Mapper"
3) From the Mapper menu select "File\Open..." and open any map file you have
4) Save layout
5) Restart CMUD, open your test session offline

You Mapper window will be visible, but empty. Click on its menu to get the "Access violation at address 00CF1AED in module 'cMUD.exe'. Read of address 00000194." error. There is hidden mapper window with loaded map as well, which is works normally.
_________________
My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads
Reply with quote
Doxedon
Novice


Joined: 01 Dec 2007
Posts: 49

PostPosted: Sat Aug 01, 2009 1:32 am   
 
Following your steps Zugg (delete and reset layout) and the multiple mapper options are gone from the menu.

I'm not sure if it's meant to be a sideeffect or not, but there is no longer any option at all relating to MAPs in the Window menu.
Reply with quote
Tech
GURU


Joined: 18 Oct 2000
Posts: 2733
Location: Atlanta, USA

PostPosted: Mon Aug 03, 2009 7:12 pm   
 
I tried this with one of my old maps and it worked just fine.
_________________
Asati di tempari!
Reply with quote
Arde
Enchanter


Joined: 09 Sep 2007
Posts: 605

PostPosted: Tue Aug 04, 2009 6:04 am   
 
After additional tests I can say that there is a difference between a mapper called by "Window\Mapper" menu and a mapper called by "Map" button from the main CMUD toolbar. Or, which is more probable, calling mapper from the menu does not init all variables required which results later in various AVs; mapper called by "Window\Mapper" menu can't draw\save\load maps, it only can draw mapper window itself.

Compare results from these 2 procedures

1a) Run CMUD, create a new session, save it, open offline.
2a) Click on the "Map" button from the main CMUD toolbar.
Mapper correctly creates default map for current session.
3a) From the mapper menu select "File->Save As" and save the map under different name
Mapper successfully saves the map.
4a) Exit CMUD.


1b) Run CMUD, create a new session, save it, open offline.
2b) From the CMUD main menu select "Window->Mapper".
Mapper doesn't create default map for current session.
3b) From the mapper menu select "File->Save As" and save the map under different name
Mapper crashes.

As I understand, "Window->Mapper" menu was designed for letting people open additional mapper windows. The problem for me is that by default, when CMUD loads a real session, it opens a mapper with the latter procedure, leaving me with no opened map and with ready-to-crash mapper window.

=================================================
Crash report after step 3b (I've sent it but forgot to specify my nickname again, sorry):

Code:

date/time         : 2009-08-04, 09:50:20, 609ms
operating system  : Windows XP Service Pack 2 build 2600
system up time    : 57 minutes 32 seconds
program up time   : 41 seconds
processors        : 2x Intel(R) Pentium(R) D CPU 3.40GHz
physical memory   : 1069/2046 MB (free/total)
free disk space   : (D:) 44,39 GB
display mode      : 1680x1050, 32 bit
process id        : $654
allocated memory  : 34,28 MB
executable        : cMUD.exe
exec. date/time   : 2009-07-29 02:46
version           : 3.10.0.1
compiled with     : BCB 2006/07
madExcept version : 3.0h
callstack crc     : $5acf67b0, $85a6fdfb, $85a6fdfb
count             : 2
exception number  : 1
exception class   : EAccessViolation
exception message : Access violation at address 00D4E55C in module 'cMUD.exe'. Read of address 00000020.

Main ($ca0):
00d4e55c +000 cMUD.exe   RoomRec3   1099  +0 TRoomRec.GetID
00a556ac +010 cMUD.exe   MapFrame3   448  +0 TMapFr.GetCurRoom
00cef66b +057 cMUD.exe   MapNew3    2307  +3 TNewMapF.ActionSaveAsExecute
0047b73f +00f cMUD.exe   Classes             TBasicAction.Execute
004cbcb5 +031 cMUD.exe   ActnList            TContainedAction.Execute
004cc97c +050 cMUD.exe   ActnList            TCustomAction.Execute
0047b60b +013 cMUD.exe   Classes             TBasicActionLink.Execute
006ae4ae +052 cMUD.exe   dxBar     37238  +5 TdxBarItem.DoClick
006ae42b +03b cMUD.exe   dxBar     37226  +4 TdxBarItem.DirectClick
006b26bc +154 cMUD.exe   dxBar     39493 +32 TdxBarItemControl.ControlUnclick
006b579a +056 cMUD.exe   dxBar     41411  +6 TdxBarButtonControl.ControlUnclick
0069b2de +0fe cMUD.exe   dxBar     27162 +24 TCustomdxBarControl.WMLButtonUp
004bb023 +2bb cMUD.exe   Controls            TControl.WndProc
004bf027 +4fb cMUD.exe   Controls            TWinControl.WndProc
006a46ca +002 cMUD.exe   dxBar     32031  +0 TdxBarControl.IsInternal
006a86d6 +012 cMUD.exe   dxBar     34037  +1 TdxBarSubMenuControl.IsInternal
0069d6df +007 cMUD.exe   dxBar     28313  +1 TCustomdxBarControl.GetEquivalentParentBar
0069c942 +01a cMUD.exe   dxBar     27853  +6 TCustomdxBarControl.CanProcessMouseMessage
004be750 +02c cMUD.exe   Controls            TWinControl.MainWndProc
0047c400 +014 cMUD.exe   Classes             StdWndProc
77d3bcc7 +00a USER32.dll                     DispatchMessageA
004a96fc +0fc cMUD.exe   Forms               TApplication.ProcessMessage
004a9736 +00a cMUD.exe   Forms               TApplication.HandleMessage
004a9a2b +0b3 cMUD.exe   Forms               TApplication.Run
00e0015c +088 cMUD.exe   CMUD        352 +20 initialization
7c91312f +069 ntdll.dll                      RtlUnicodeStringToAnsiString
_________________
My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads
Reply with quote
Tech
GURU


Joined: 18 Oct 2000
Posts: 2733
Location: Atlanta, USA

PostPosted: Tue Aug 04, 2009 5:53 pm   
 
I think I see why I couldn't re-create this problem. One of us must have a messed up installation.

Using the procedure you described in the second step, I don't have a 'Mapper' under 'Window' when I first open my new session offline. As a result I don't get the subsequent errors that occur.

When Zugg finishes his birthday celebrations, he can weigh and say which is correct. I'll try a new install on my home machine this evening to see what happens.
_________________
Asati di tempari!
Reply with quote
Rahab
Wizard


Joined: 22 Mar 2007
Posts: 2320

PostPosted: Tue Aug 04, 2009 8:03 pm   
 
From what Zugg said last week, I think that the Mapper is only supposed to appear under Window when you already have a mapper window associated with the session.
Reply with quote
Arde
Enchanter


Joined: 09 Sep 2007
Posts: 605

PostPosted: Mon Aug 10, 2009 7:13 pm   
 
A small update on this thread.

Tech was right: it was not a clean install. I just uninstalled 3.08 and then ran setup for 3.10a.

The cause of the problem was my old default.xly, which had a reference to a Mapper window. This mapper plus a mapper from the session layout file gave 2 mapper windows and that was the first symptom I saw after 3.10a installation. I do not know why default mapper stays active after I have a session loaded...
I renamed existing default.xly and let CMUD recreate it - now there is only 1 Mapper window and everything works fine. (Note that running CMUD without default.xly file results in opening simultaneously of the "Sessions" window along with untitled session with status window. That untitled session has 2 untitled packages in it. Dunno is it a bug or no. I closed that untitled session and saved new default layout).

The question is, how can I reset default layout, not the session layout without need to delete a file? Can CMUD overwrite existing default.xly file on install? I think there is no need to keep it.


Here is a part of my old default.xly file (was created in April)
Code:
<Control TypeId="0" Key="{A764C731-2422-415C-A18E-C9815744E68C}" ScreenRect="937;331;1287;754" NormalSize="0;0" PanelState="0" Caption="Mapper" Alignment="3" ShowCaption="0" AHOrientation="4" AHSite="{00000000-0000-0000-0000-000000000000}" AHContainer="{00000000-0000-0000-0000-000000000000}" PlacementInfo.Position="937;331" PlacementInfo.Size="350;423" PlacementInfo.FloatPosition="-1;-1" PlacementInfo.FloatSize="450;200" SPlacementInfoFloatState="0" PlacementInfo.State="0" PlacementInfo.ContainerId="2" PlacementInfo.Order="1" PlacementInfo.ParentKey="{79E52D8A-2DF8-4585-B88B-1208089DF234}" PlacementInfo.TabOrientation="0" PlacementInfo.Alignment="3" PlacementInfo.HideSize="0" ChildrenCount="0"/>

Note the PlacementInfo.Position="937;331" part - it is exactly the same position my mapper had within my session. But why it saved this info in the default layout file as well? With this old default layout file I had that bugged empty "Mapper" window with the specified coordinates, while my actual session map window was hidden. Compare with a part of my old session layout file:
Code:
<Control TypeId="0" Key="{A764C731-2422-415C-A18E-C9815744E68C}" ScreenRect="1273;89;1680;478" NormalSize="0;0" PanelState="0" Caption="Map for *****" Alignment="0" ShowCaption="0" AHOrientation="4" AHSite="{00000000-0000-0000-0000-000000000000}" AHContainer="{00000000-0000-0000-0000-000000000000}" PlacementInfo.Position="937;331" PlacementInfo.Size="350;423" PlacementInfo.FloatPosition="-1;-1" PlacementInfo.FloatSize="450;200" SPlacementInfoFloatState="0" PlacementInfo.State="0" PlacementInfo.ContainerId="2" PlacementInfo.Order="0" PlacementInfo.ParentKey="{79E52D8A-2DF8-4585-B88B-1208089DF234}" PlacementInfo.TabOrientation="0" PlacementInfo.Alignment="1" PlacementInfo.HideSize="0" ChildrenCount="0"/>
_________________
My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads
Reply with quote
Zugg
MASTER


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

PostPosted: Wed Aug 12, 2009 4:49 pm   
 
Just delete the old default.xly file to restore the default layout.
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