Changeset 5755


Ignore:
Timestamp:
02/11/04 00:11:52 (17 years ago)
Author:
piso
Message:

subseq(): catch ArrayIndexOutOfBoundsException?.

Location:
trunk/j/src/org/armedbear/lisp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/BitVector.java

    r5114 r5755  
    33 *
    44 * Copyright (C) 2003 Peter Graves
    5  * $Id: BitVector.java,v 1.29 2003-12-13 00:58:50 piso Exp $
     5 * $Id: BitVector.java,v 1.30 2004-02-11 00:11:26 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    200200        BitVector v = new BitVector(end - start);
    201201        int i = start, j = 0;
    202         while (i < end) {
    203             if (_get(i++) == 0)
    204                 v.clear(j++);
    205             else
    206                 v.set(j++);
    207         }
    208         return v;
     202        try {
     203            while (i < end) {
     204                if (_get(i++) == 0)
     205                    v.clear(j++);
     206                else
     207                    v.set(j++);
     208            }
     209            return v;
     210        }
     211        catch (ArrayIndexOutOfBoundsException e) {
     212            return signal(new TypeError("Array index out of bounds: " + i + "."));
     213        }
    209214    }
    210215
  • trunk/j/src/org/armedbear/lisp/LispString.java

    r5694 r5755  
    33 *
    44 * Copyright (C) 2002-2004 Peter Graves
    5  * $Id: LispString.java,v 1.73 2004-02-04 15:19:43 piso Exp $
     5 * $Id: LispString.java,v 1.74 2004-02-11 00:11:52 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    151151        LispString s = new LispString(end - start);
    152152        int i = start, j = 0;
    153         while (i < end)
    154             s.array[j++] = array[i++];
    155         return s;
     153        try {
     154            while (i < end)
     155                s.array[j++] = array[i++];
     156            return s;
     157        }
     158        catch (ArrayIndexOutOfBoundsException e) {
     159            return signal(new TypeError("Array index out of bounds: " + i + "."));
     160        }
    156161    }
    157162
  • trunk/j/src/org/armedbear/lisp/Vector.java

    r5113 r5755  
    22 * Vector.java
    33 *
    4  * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Vector.java,v 1.29 2003-12-13 00:28:08 piso Exp $
     4 * Copyright (C) 2002-2004 Peter Graves
     5 * $Id: Vector.java,v 1.30 2004-02-11 00:11:39 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    165165        Vector v = new Vector(end - start);
    166166        int i = start, j = 0;
    167         while (i < end)
    168             v.elements[j++] = elements[i++];
    169         return v;
     167        try {
     168            while (i < end)
     169                v.elements[j++] = elements[i++];
     170            return v;
     171        }
     172        catch (ArrayIndexOutOfBoundsException e) {
     173            return signal(new TypeError("Array index out of bounds: " + i + "."));
     174        }
    170175    }
    171176
Note: See TracChangeset for help on using the changeset viewer.