Public bug reported: Creating a new map with this code on the latest development branch causes this backtrace:
0 TArea::fast_ausgaengeBestimmen TArea.cpp 168 0x5128bb 1 TMap::setExit TMap.cpp 304 0x5281ca 2 TLuaInterpreter::setExit TLuaInterpreter.cpp 6650 0x492075 3 ?? C:\mingw32\lib\lua51.dll 0x66d862e0 4 ?? C:\mingw32\lib\lua51.dll 0x66d8ffa6 5 ?? C:\mingw32\lib\lua51.dll 0x66d866e0 6 ?? C:\mingw32\lib\lua51.dll 0x66d81590 7 ?? C:\mingw32\lib\lua51.dll 0x66d85ad6 8 ?? C:\mingw32\lib\lua51.dll 0x66d86843 9 ?? C:\mingw32\lib\lua51.dll 0x66d82870 10 TLuaInterpreter::compile TLuaInterpreter.cpp 9649 0x49ce7a 11 TScript::compileScript TScript.cpp 150 0x4b04d7 12 TScript::setScript TScript.cpp 143 0x4b048e 13 dlgTriggerEditor::saveScript dlgTriggerEditor.cpp 4282 0x456ad9 14 dlgTriggerEditor::slot_saveScriptAfterEdit dlgTriggerEditor.cpp 4178 0x456799 15 dlgTriggerEditor::slot_save_edit dlgTriggerEditor.cpp 6932 0x46a642 16 dlgTriggerEditor::qt_static_metacall moc_dlgTriggerEditor.cpp 509 0x57ecd9 17 QMetaObject::activate qobject.cpp 3479 0x4c94cd0 18 QMetaObject::activate qobject.cpp 3354 0x4c94672 19 QAction::triggered moc_qaction.cpp 356 0x11674669 20 QAction::activate qaction.cpp 1175 0x11673c1e ... <More> code: ------------------------------------------------- -- Put your Lua functions here. -- -- -- -- Note that you can also use external Scripts -- ------------------------------------------------- function makeMap() id = 0 for i=0,100 do for j=0, 100 do addRoom(id) --setRoomArea(id,0) --uncomment this and remove below call to avoid seg faults setRoomName(id, tostring(id)) setRoomCoordinates(id, i, j, 0) setExit(id-1,id,1) setExit(id,id-1,2) setRoomArea(id,0) id = id+1 end end end function makeLabels() id=1 for i=0,100 do for j=0, 100 do --display(id) x,y,z = getRoomCoordinates(id) createMapLabel(0,tostring(id),x,y,z,0,255,0,0,0,0) id = id+1 end end end --makeMap() --makeLabels() centerview(1) uncomment makeMap and it crashes. It fails when id is 1 as well, so it isn't because of the i-1 setExit bit. It's caused by mpRoomDB not being initialized because there is no area created. Even post creation, the room needs to be assigned to an area first before any calls to mpRoomDB are called, else it will seg fault. It seems like we need some 'void' area that has no name and is just an abyss for rooms waiting to be allocated to avoid breaking scripts. ** Affects: mudlet Importance: Critical Status: New -- You received this bug notification because you are a member of Mudlet Makers, which is subscribed to Mudlet. https://bugs.launchpad.net/bugs/1226558 Title: getRoom in TArea causes seg fault on map creation Status in Mudlet the MUD client: New Bug description: Creating a new map with this code on the latest development branch causes this backtrace: 0 TArea::fast_ausgaengeBestimmen TArea.cpp 168 0x5128bb 1 TMap::setExit TMap.cpp 304 0x5281ca 2 TLuaInterpreter::setExit TLuaInterpreter.cpp 6650 0x492075 3 ?? C:\mingw32\lib\lua51.dll 0x66d862e0 4 ?? C:\mingw32\lib\lua51.dll 0x66d8ffa6 5 ?? C:\mingw32\lib\lua51.dll 0x66d866e0 6 ?? C:\mingw32\lib\lua51.dll 0x66d81590 7 ?? C:\mingw32\lib\lua51.dll 0x66d85ad6 8 ?? C:\mingw32\lib\lua51.dll 0x66d86843 9 ?? C:\mingw32\lib\lua51.dll 0x66d82870 10 TLuaInterpreter::compile TLuaInterpreter.cpp 9649 0x49ce7a 11 TScript::compileScript TScript.cpp 150 0x4b04d7 12 TScript::setScript TScript.cpp 143 0x4b048e 13 dlgTriggerEditor::saveScript dlgTriggerEditor.cpp 4282 0x456ad9 14 dlgTriggerEditor::slot_saveScriptAfterEdit dlgTriggerEditor.cpp 4178 0x456799 15 dlgTriggerEditor::slot_save_edit dlgTriggerEditor.cpp 6932 0x46a642 16 dlgTriggerEditor::qt_static_metacall moc_dlgTriggerEditor.cpp 509 0x57ecd9 17 QMetaObject::activate qobject.cpp 3479 0x4c94cd0 18 QMetaObject::activate qobject.cpp 3354 0x4c94672 19 QAction::triggered moc_qaction.cpp 356 0x11674669 20 QAction::activate qaction.cpp 1175 0x11673c1e ... <More> code: ------------------------------------------------- -- Put your Lua functions here. -- -- -- -- Note that you can also use external Scripts -- ------------------------------------------------- function makeMap() id = 0 for i=0,100 do for j=0, 100 do addRoom(id) --setRoomArea(id,0) --uncomment this and remove below call to avoid seg faults setRoomName(id, tostring(id)) setRoomCoordinates(id, i, j, 0) setExit(id-1,id,1) setExit(id,id-1,2) setRoomArea(id,0) id = id+1 end end end function makeLabels() id=1 for i=0,100 do for j=0, 100 do --display(id) x,y,z = getRoomCoordinates(id) createMapLabel(0,tostring(id),x,y,z,0,255,0,0,0,0) id = id+1 end end end --makeMap() --makeLabels() centerview(1) uncomment makeMap and it crashes. It fails when id is 1 as well, so it isn't because of the i-1 setExit bit. It's caused by mpRoomDB not being initialized because there is no area created. Even post creation, the room needs to be assigned to an area first before any calls to mpRoomDB are called, else it will seg fault. It seems like we need some 'void' area that has no name and is just an abyss for rooms waiting to be allocated to avoid breaking scripts. To manage notifications about this bug go to: https://bugs.launchpad.net/mudlet/+bug/1226558/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~mudlet-makers Post to : mudlet-makers@lists.launchpad.net Unsubscribe : https://launchpad.net/~mudlet-makers More help : https://help.launchpad.net/ListHelp