From 2fd8ee3815a28d7de335b30c6cddf99073f5f1a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Mon, 5 Oct 2020 11:40:51 +0200 Subject: [PATCH] Delete blob storage when disposing memory in computer block. --- src/main/java/li/cil/oc2/common/blobs/BlobStorage.java | 6 ++++-- .../java/li/cil/oc2/common/tile/ComputerTileEntity.java | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/li/cil/oc2/common/blobs/BlobStorage.java b/src/main/java/li/cil/oc2/common/blobs/BlobStorage.java index 50aab19f..299c2234 100644 --- a/src/main/java/li/cil/oc2/common/blobs/BlobStorage.java +++ b/src/main/java/li/cil/oc2/common/blobs/BlobStorage.java @@ -149,8 +149,10 @@ public final class BlobStorage { * * @param handle the handle to free. */ - public static void freeHandle(final UUID handle) { - DELETED_HANDLES.add(handle); + public static void freeHandle(@Nullable final UUID handle) { + if (handle != null) { + DELETED_HANDLES.add(handle); + } } /** diff --git a/src/main/java/li/cil/oc2/common/tile/ComputerTileEntity.java b/src/main/java/li/cil/oc2/common/tile/ComputerTileEntity.java index e378d943..be5907ad 100644 --- a/src/main/java/li/cil/oc2/common/tile/ComputerTileEntity.java +++ b/src/main/java/li/cil/oc2/common/tile/ComputerTileEntity.java @@ -217,6 +217,9 @@ public final class ComputerTileEntity extends TileEntity implements ITickableTil virtualMachine.dispose(); virtualMachine = null; } + + BlobStorage.freeHandle(firmwareBlobHandle); + BlobStorage.freeHandle(ramBlobHandle); } private void joinVirtualMachine() {