From a8beb8c3e27ed1ccc61ff9b7129504bb76e8b6ba Mon Sep 17 00:00:00 2001 From: simon Date: Fri, 5 Jan 2018 21:38:07 -0500 Subject: [PATCH] Fixes #115 --- .../server/webserver/CodeUploadHandler.java | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/Server/src/main/java/net/simon987/server/webserver/CodeUploadHandler.java b/Server/src/main/java/net/simon987/server/webserver/CodeUploadHandler.java index eab70f4..8400a93 100644 --- a/Server/src/main/java/net/simon987/server/webserver/CodeUploadHandler.java +++ b/Server/src/main/java/net/simon987/server/webserver/CodeUploadHandler.java @@ -21,30 +21,32 @@ public class CodeUploadHandler implements MessageHandler { //TODO Should we wait at the end of the tick to modify the CPU ? user.getUser().setUserCode((String) json.get("code")); - AssemblyResult ar = new Assembler(user.getUser().getCpu().getInstructionSet(), - user.getUser().getCpu().getRegisterSet(), - GameServer.INSTANCE.getConfig()).parse(user.getUser().getUserCode()); + if (user.getUser().getUserCode() != null) { + AssemblyResult ar = new Assembler(user.getUser().getCpu().getInstructionSet(), + user.getUser().getCpu().getRegisterSet(), + GameServer.INSTANCE.getConfig()).parse(user.getUser().getUserCode()); - user.getUser().getCpu().getMemory().clear(); + user.getUser().getCpu().getMemory().clear(); - //Write assembled code to mem - char[] assembledCode = ar.getWords(); + //Write assembled code to mem + char[] assembledCode = ar.getWords(); - user.getUser().getCpu().getMemory().write((char) ar.origin, assembledCode, 0, assembledCode.length); - user.getUser().getCpu().setCodeSectionOffset(ar.getCodeSectionOffset()); + user.getUser().getCpu().getMemory().write((char) ar.origin, assembledCode, 0, assembledCode.length); + user.getUser().getCpu().setCodeSectionOffset(ar.getCodeSectionOffset()); - //Clear keyboard buffer - if (user.getUser().getControlledUnit() != null && - user.getUser().getControlledUnit().getKeyboardBuffer() != null) { - user.getUser().getControlledUnit().getKeyboardBuffer().clear(); + //Clear keyboard buffer + if (user.getUser().getControlledUnit() != null && + user.getUser().getControlledUnit().getKeyboardBuffer() != null) { + user.getUser().getControlledUnit().getKeyboardBuffer().clear(); + } + + + JSONObject response = new JSONObject(); + response.put("t", "codeResponse"); + response.put("bytes", ar.bytes.length); + + user.getWebSocket().send(response.toJSONString()); } - - - JSONObject response = new JSONObject(); - response.put("t", "codeResponse"); - response.put("bytes", ar.bytes.length); - - user.getWebSocket().send(response.toJSONString()); }