I forgot to send this patch last night.  I was browsing through the code and
noticed these "return NULL"s for what I think are probably really fatal
conditions.

Here's a patch which switches them to internal_exceptions.  Hopefully i'm
not missing the point here.

--Josh

Index: chartype.c
===================================================================
RCS file: /cvs/public/parrot/chartype.c,v
retrieving revision 1.4
diff -u -r1.4 chartype.c
--- chartype.c  17 Mar 2002 06:44:41 -0000      1.4
+++ chartype.c  28 Mar 2002 17:27:26 -0000
@@ -27,7 +27,7 @@
         return &unicode_chartype;
     }
     else {
-        return NULL;
+        internal_exception(INVALID_CHARTYPE, "Invalid chartype '%s'\n", name);
     }
 }
 
Index: encoding.c
===================================================================
RCS file: /cvs/public/parrot/encoding.c,v
retrieving revision 1.4
diff -u -r1.4 encoding.c
--- encoding.c  17 Mar 2002 06:44:41 -0000      1.4
+++ encoding.c  28 Mar 2002 17:27:26 -0000
@@ -35,7 +35,7 @@
         return &utf32_encoding;
     }
     else {
-        return NULL;
+        internal_exception(INVALID_ENCODING, "Invalid encoding '%s'\n", name);
     }
 }
 
Index: include/parrot/exceptions.h
===================================================================
RCS file: /cvs/public/parrot/include/parrot/exceptions.h,v
retrieving revision 1.16
diff -u -r1.16 exceptions.h
--- include/parrot/exceptions.h 4 Mar 2002 03:17:21 -0000       1.16
+++ include/parrot/exceptions.h 28 Mar 2002 17:27:26 -0000
@@ -30,6 +30,8 @@
 #define MALFORMED_UTF16 1
 #define MALFORMED_UTF32 1
 #define INVALID_CHARACTER 1
+#define INVALID_CHARTYPE 1
+#define INVALID_ENCODING 1
 #define NEG_REPEAT 1
 #define NEG_SUBSTR 1
 #define NEG_SLEEP 1

Reply via email to