From ce6eb7b462a44b4c8aa0f8d7501d9ecd6b9a3481 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sat, 6 Nov 2010 15:59:15 +0100 Subject: [PATCH] Avoid NPE --- src/java/com/sun/gluegen/cgram/types/CompoundType.java | 4 +++- src/java/com/sun/gluegen/cgram/types/EnumType.java | 8 ++++++-- src/java/com/sun/gluegen/cgram/types/FunctionType.java | 8 ++++++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/java/com/sun/gluegen/cgram/types/CompoundType.java b/src/java/com/sun/gluegen/cgram/types/CompoundType.java index 51efad58..0a880de6 100644 --- a/src/java/com/sun/gluegen/cgram/types/CompoundType.java +++ b/src/java/com/sun/gluegen/cgram/types/CompoundType.java @@ -69,7 +69,9 @@ private CompoundType(String name, SizeThunk size, CompoundTypeKind kind, int cvA public Object clone() { CompoundType n = (CompoundType) super.clone(); - n.fields = (ArrayList) this.fields.clone(); + if(null!=this.fields) { + n.fields = (ArrayList) this.fields.clone(); + } return n; } diff --git a/src/java/com/sun/gluegen/cgram/types/EnumType.java b/src/java/com/sun/gluegen/cgram/types/EnumType.java index c6f8541a..49f962df 100644 --- a/src/java/com/sun/gluegen/cgram/types/EnumType.java +++ b/src/java/com/sun/gluegen/cgram/types/EnumType.java @@ -87,8 +87,12 @@ protected EnumType(String name, IntType underlyingType, int cvAttributes) { public Object clone() { EnumType n = (EnumType) super.clone(); - n.underlyingType = (IntType) this.underlyingType.clone(); - n.enums = (ArrayList) this.enums.clone(); + if(null!=this.underlyingType) { + n.underlyingType = (IntType) this.underlyingType.clone(); + } + if(null!=this.enums) { + n.enums = (ArrayList) this.enums.clone(); + } return n; } diff --git a/src/java/com/sun/gluegen/cgram/types/FunctionType.java b/src/java/com/sun/gluegen/cgram/types/FunctionType.java index 35b62b7e..3b09d8b9 100644 --- a/src/java/com/sun/gluegen/cgram/types/FunctionType.java +++ b/src/java/com/sun/gluegen/cgram/types/FunctionType.java @@ -56,8 +56,12 @@ public FunctionType(String name, SizeThunk size, Type returnType, int cvAttribut public Object clone() { FunctionType n = (FunctionType) super.clone(); - n.argumentTypes = (ArrayList) this.argumentTypes.clone(); - n.argumentNames = (ArrayList) this.argumentNames.clone(); + if(null!=this.argumentTypes) { + n.argumentTypes = (ArrayList) this.argumentTypes.clone(); + } + if(null!=this.argumentNames) { + n.argumentNames = (ArrayList) this.argumentNames.clone(); + } return n; }