From 1fdb6f0ad1e59e2012e4f53d6a336cdc77f48782 Mon Sep 17 00:00:00 2001 From: Treeku Date: Thu, 3 Apr 2014 18:16:00 +0100 Subject: [PATCH] Some SWGMap fixes --- src/resources/objects/SWGMap.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/resources/objects/SWGMap.java b/src/resources/objects/SWGMap.java index 0227a725..923ccff4 100644 --- a/src/resources/objects/SWGMap.java +++ b/src/resources/objects/SWGMap.java @@ -119,13 +119,17 @@ public class SWGMap implements Map { if (map.containsKey(key)) { V oldValue = map.put(key, value); - queue(item(2, (String) key, ((IDelta) value).getBytes(), true, true)); + if (oldValue != null) { + queue(item(2, (String) key, ((IDelta) value).getBytes(), true, true)); + } return oldValue; } else { V oldValue = map.put(key, value); - queue(item(0, (String) key, ((IDelta) value).getBytes(), true, true)); + if (oldValue != null) { + queue(item(0, (String) key, ((IDelta) value).getBytes(), true, true)); + } return oldValue; } @@ -170,7 +174,9 @@ public class SWGMap implements Map { key instanceof Integer || key instanceof Float || key instanceof Long) { V value = map.remove(key); - queue(item(1, key, ((IDelta) map.get(key)).getBytes(), true, true)); + if (value != null) { + queue(item(1, key, ((IDelta) map.get(key)).getBytes(), true, true)); + } return value; } @@ -230,6 +236,7 @@ public class SWGMap implements Map { } } if (useData) buffer.put(data); + buffer.flip(); updateCounter++; @@ -241,6 +248,7 @@ public class SWGMap implements Map { buffer.putInt(1); buffer.putInt(updateCounter); buffer.put(data); + buffer.flip(); messageBuilder.sendListDelta(viewType, updateType, buffer); } @@ -255,6 +263,7 @@ public class SWGMap implements Map { buffer.putInt(data.size()); buffer.putInt(updateCounter); for (byte[] queued : data) buffer.put(queued); + buffer.flip(); messageBuilder.sendListDelta(viewType, updateType, buffer); }