From 60fe7dc5ed405dae545fb9333726a61e1a766abc Mon Sep 17 00:00:00 2001 From: hirose Date: Thu, 12 Dec 2019 21:39:49 +0900 Subject: [PATCH 1/2] handling stackOverflowException --- .../VRM/UniGLTF/Scripts/IO/ImporterContext.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs b/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs index 61168c346..a7cb72ae1 100644 --- a/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs +++ b/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs @@ -255,9 +255,20 @@ namespace UniGLTF throw new Exception("chunk 1 is not BIN"); } - var jsonBytes = chunks[0].Bytes; - ParseJson(Encoding.UTF8.GetString(jsonBytes.Array, jsonBytes.Offset, jsonBytes.Count), - new SimpleStorage(chunks[1].Bytes)); + try + { + var jsonBytes = chunks[0].Bytes; + ParseJson(Encoding.UTF8.GetString(jsonBytes.Array, jsonBytes.Offset, jsonBytes.Count), + new SimpleStorage(chunks[1].Bytes)); + } + catch(StackOverflowException ex) + { + Debug.LogError("[UniVRM Import Error] json parsing failed, nesting is too deep.\n" + ex); + } + catch + { + throw; + } } public bool UseUniJSONParser; From d25e683b348e4473f76718799a654aace4e9254d Mon Sep 17 00:00:00 2001 From: hirose Date: Thu, 12 Dec 2019 21:50:33 +0900 Subject: [PATCH 2/2] Rethrow Exception --- Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs b/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs index a7cb72ae1..1c2c81201 100644 --- a/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs +++ b/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs @@ -263,7 +263,7 @@ namespace UniGLTF } catch(StackOverflowException ex) { - Debug.LogError("[UniVRM Import Error] json parsing failed, nesting is too deep.\n" + ex); + throw new Exception("[UniVRM Import Error] json parsing failed, nesting is too deep.\n" + ex); } catch {