2003/05/26 10:38:33
[org.ibex.core.git] / src / org / xwt / SpecialBoxProperty.java
index bc9b9d4..c2b52b5 100644 (file)
@@ -81,10 +81,15 @@ class SpecialBoxProperty {
                     String s = value == null ? null : value.toString();
                     if (value == null) newcolor = 0x00000000;
                     else if (s.length() > 0 && s.charAt(0) == '#')
-                        newcolor = 0xFF000000 |
-                            (Integer.parseInt(s.substring(1, 3), 16) << 16) |
-                            (Integer.parseInt(s.substring(3, 5), 16) << 8) |
-                            Integer.parseInt(s.substring(5, 7), 16);
+                       try {
+                           newcolor = 0xFF000000 |
+                               (Integer.parseInt(s.substring(1, 3), 16) << 16) |
+                               (Integer.parseInt(s.substring(3, 5), 16) << 8) |
+                               Integer.parseInt(s.substring(5, 7), 16);
+                       } catch (NumberFormatException e) {
+                           Log.log(this, "invalid color " + s);
+                           return;
+                       }
                     else if (s.equals("black")) newcolor = black;
                     else if (s.equals("blue")) newcolor = blue;
                     else if (s.equals("green")) newcolor = green;
@@ -214,7 +219,8 @@ class SpecialBoxProperty {
 
         specialBoxProperties.put("static", new SpecialBoxProperty() {
                 public Object get(Box b) {
-                    String cfsn = JS.getCurrentFunction().getSourceName();
+                   JS.Function cf = JS.getCurrentFunction();
+                    String cfsn = cf.getSourceName();
                     for(int i=0; i<cfsn.length() - 1; i++)
                         if (cfsn.charAt(i) == '.' && (cfsn.charAt(i+1) == '_' || Character.isDigit(cfsn.charAt(i+1)))) {
                             cfsn = cfsn.substring(0, i);