I've noticed some anomalous behaviour with missiles on purchasing ships via the shipyard in the normal way.
If the current ship's pylons are empty on buying a new ship, the new ships pylons are empty.
If the current ship has pylon mounted equipment it is transferred to the new ship (subject to available pylon space). Is this the way it is supposed to be?
I can also reliably crash trunk r4913 taking the following steps.
Start a new Jameson - manually remove all 3 missiles using player.ship.removeEquipment("EQ_MISSILE").
Purchase a missile normally. On attempting to remove that missile with player.ship.removeEquipment("EQ_MISSILE") the game will crash.
Alternatively start a new Jameson - buy a 4th missile. Remove all 4 missiles using player.ship.removeEquipment("EQ_MISSILE"). On removing the 4th missile the game will crash.
Edit to add - bug also present in 1.76.1 maintenance build
Start a new Jameson - manually remove all 3 missiles using player.ship.removeEquipment("EQ_MISSILE").
Purchase a missile normally. On attempting to remove that missile with player.ship.removeEquipment("EQ_MISSILE") the game will crash.
Alternatively start a new Jameson - buy a 4th missile. Remove all 4 missiles using player.ship.removeEquipment("EQ_MISSILE"). On removing the 4th missile the game will crash.
It does not crash with me on a mac with my usual oxp set. Have you tried it without oxp's? If not, an oxp might be involved also. But cim can reproduce so he will be able to generate a backtrace.
It looks like a memory management race condition, where a string can be deallocated by the garbage collector just before it's needed. That's also fits with it being platform dependent, and also with it not happening every time a missile is removed.
If that's the case, r4294 should fix it.
[EDIT: and r4295 for the maintenance branch]
Last edited by cim on Sat May 12, 2012 11:45 am, edited 1 time in total.