From ce6eb7b462a44b4c8aa0f8d7501d9ecd6b9a3481 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Sat, 6 Nov 2010 15:59:15 +0100
Subject: 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(-)

(limited to 'src/java/com/sun/gluegen/cgram')

diff --git a/src/java/com/sun/gluegen/cgram/types/CompoundType.java b/src/java/com/sun/gluegen/cgram/types/CompoundType.java
index 51efad5..0a880de 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 @@ public class CompoundType extends Type implements Cloneable {
 
   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 c6f8541..49f962d 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 @@ public class EnumType extends IntType implements Cloneable {
 
     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 35b62b7..3b09d8b 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 class FunctionType extends Type implements Cloneable {
 
     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;
     }
 
-- 
cgit v1.2.3