[vassalengine-svn] SF.net SVN: vassalengine:[4096] VASSAL-src/branches/uckelman-cur/src/VASSAL /com
Brought to you by:
rodneykinney,
uckelman
From: <uck...@us...> - 2008-08-30 09:28:45
|
Revision: 4096 http://vassalengine.svn.sourceforge.net/vassalengine/?rev=4096&view=rev Author: uckelman Date: 2008-08-30 09:28:55 +0000 (Sat, 30 Aug 2008) Log Message: ----------- Fixed Bug #2078197: Don't call method on Map before null check. Modified Paths: -------------- VASSAL-src/branches/uckelman-cur/src/VASSAL/command/RemovePiece.java Modified: VASSAL-src/branches/uckelman-cur/src/VASSAL/command/RemovePiece.java =================================================================== --- VASSAL-src/branches/uckelman-cur/src/VASSAL/command/RemovePiece.java 2008-08-30 07:45:08 UTC (rev 4095) +++ VASSAL-src/branches/uckelman-cur/src/VASSAL/command/RemovePiece.java 2008-08-30 09:28:55 UTC (rev 4096) @@ -18,6 +18,8 @@ */ package VASSAL.command; +import java.awt.Rectangle; + import VASSAL.build.GameModule; import VASSAL.build.module.GameState; import VASSAL.build.module.Map; @@ -45,39 +47,43 @@ /** * Removes a piece by invoking {@link Map#removePiece} if the * piece belongs to a {@link Map}, followed by {@link - * GameState#removePiece}. */ + * GameState#removePiece}. + */ protected void executeCommand() { if (target == null) { target = GameModule.getGameModule().getGameState().getPieceForId(id); + if (target == null) return; } - if (target != null) { - undo = new AddPiece(target, target.getState()); - java.awt.Rectangle r = null; - Map m = target.getMap(); - Stack parent = target.getParent(); - m.getIdentifier(); - // Highlight the stack the piece was removed from - Ben - HighlightLastMoved.setLastMoved(target); + undo = new AddPiece(target, target.getState()); - if (m != null) { - r = parent == null ? - m.boundingBoxOf(target) : m.boundingBoxOf(parent); - target.getMap().removePiece(target); - target.setMap(null); - } - if (parent != null) { - String stateWithPiece = parent.getState(); - parent.remove(target); - undo = undo.append(new ChangePiece(parent.getId(),parent.getState(), stateWithPiece)); - target.setParent(null); - } - if (m != null) { - m.repaint(r); - } - GameModule.getGameModule().getGameState().removePiece(target.getId()); - KeyBuffer.getBuffer().remove(target); + Rectangle r = null; + final Map m = target.getMap(); + final Stack parent = target.getParent(); + + // Highlight the stack the piece was removed from - Ben + HighlightLastMoved.setLastMoved(target); + + if (m != null) { + r = parent == null ? m.boundingBoxOf(target) : m.boundingBoxOf(parent); + m.removePiece(target); + target.setMap(null); } + + if (parent != null) { + final String stateWithPiece = parent.getState(); + parent.remove(target); + undo = undo.append( + new ChangePiece(parent.getId(),parent.getState(), stateWithPiece)); + target.setParent(null); + } + + if (m != null) { + m.repaint(r); + } + + GameModule.getGameModule().getGameState().removePiece(target.getId()); + KeyBuffer.getBuffer().remove(target); } protected Command myUndoCommand() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |