Fix dynamic resources ModelManager leak (#231)
The opened BufferedReader was not being closed, and apparently the cleaner/finalize mechanism doesn't exist for it
This commit is contained in:
parent
ecb3863410
commit
5fef7dc66b
|
|
@ -16,6 +16,7 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -43,8 +44,8 @@ public class ModelManagerMixin {
|
||||||
|
|
||||||
private BlockModel loadSingleBlockModel(ResourceManager manager, ResourceLocation location) {
|
private BlockModel loadSingleBlockModel(ResourceManager manager, ResourceLocation location) {
|
||||||
return manager.getResource(location).map(resource -> {
|
return manager.getResource(location).map(resource -> {
|
||||||
try {
|
try (BufferedReader reader = resource.openAsReader()) {
|
||||||
return BlockModel.fromStream(resource.openAsReader());
|
return BlockModel.fromStream(reader);
|
||||||
} catch(IOException e) {
|
} catch(IOException e) {
|
||||||
ModernFix.LOGGER.error("Couldn't load model", e);
|
ModernFix.LOGGER.error("Couldn't load model", e);
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -54,8 +55,8 @@ public class ModelManagerMixin {
|
||||||
|
|
||||||
private List<ModelBakery.LoadedJson> loadSingleBlockState(ResourceManager manager, ResourceLocation location) {
|
private List<ModelBakery.LoadedJson> loadSingleBlockState(ResourceManager manager, ResourceLocation location) {
|
||||||
return manager.getResourceStack(location).stream().map(resource -> {
|
return manager.getResourceStack(location).stream().map(resource -> {
|
||||||
try {
|
try (BufferedReader reader = resource.openAsReader()) {
|
||||||
return new ModelBakery.LoadedJson(resource.sourcePackId(), GsonHelper.parse(resource.openAsReader()));
|
return new ModelBakery.LoadedJson(resource.sourcePackId(), GsonHelper.parse(reader));
|
||||||
} catch(IOException e) {
|
} catch(IOException e) {
|
||||||
ModernFix.LOGGER.error("Couldn't load blockstate", e);
|
ModernFix.LOGGER.error("Couldn't load blockstate", e);
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,11 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
@ -41,8 +44,8 @@ public class ModelManagerMixin {
|
||||||
|
|
||||||
private BlockModel loadSingleBlockModel(ResourceManager manager, ResourceLocation location) {
|
private BlockModel loadSingleBlockModel(ResourceManager manager, ResourceLocation location) {
|
||||||
return manager.getResource(location).map(resource -> {
|
return manager.getResource(location).map(resource -> {
|
||||||
try {
|
try (BufferedReader reader = resource.openAsReader()) {
|
||||||
return BlockModel.fromStream(resource.openAsReader());
|
return BlockModel.fromStream(reader);
|
||||||
} catch(IOException e) {
|
} catch(IOException e) {
|
||||||
ModernFix.LOGGER.error("Couldn't load model", e);
|
ModernFix.LOGGER.error("Couldn't load model", e);
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -52,8 +55,8 @@ public class ModelManagerMixin {
|
||||||
|
|
||||||
private List<ModelBakery.LoadedJson> loadSingleBlockState(ResourceManager manager, ResourceLocation location) {
|
private List<ModelBakery.LoadedJson> loadSingleBlockState(ResourceManager manager, ResourceLocation location) {
|
||||||
return manager.getResourceStack(location).stream().map(resource -> {
|
return manager.getResourceStack(location).stream().map(resource -> {
|
||||||
try {
|
try (BufferedReader reader = resource.openAsReader()) {
|
||||||
return new ModelBakery.LoadedJson(resource.sourcePackId(), GsonHelper.parse(resource.openAsReader()));
|
return new ModelBakery.LoadedJson(resource.sourcePackId(), GsonHelper.parse(reader));
|
||||||
} catch(IOException e) {
|
} catch(IOException e) {
|
||||||
ModernFix.LOGGER.error("Couldn't load blockstate", e);
|
ModernFix.LOGGER.error("Couldn't load blockstate", e);
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user