*/
  public void call_lists (int type, Object lists) {
    int length;
    switch (type) {
    case BYTE:                  // fall through
    case UNSIGNED_BYTE: 
      length = ((byte []) lists).length;
      break;

    case SHORT:                 // fall through
    case UNSIGNED_SHORT:        // fall through
    case X2_BYTES: 
      length = ((int []) lists).length * 2;
      break;

    case INT:                   // fall through
    case UNSIGNED_INT:          // fall through
    case X4_BYTES: 
      length = ((int []) lists).length * 4;
      break;

    case FLOAT: 
      length = ((float []) lists).length * 4;
      break;
    case X3_BYTES:
      length = ((int []) lists).length * 3;
      break;
    default:
      return;
    }

    int p = RequestOutputStream.pad (length);
    int req_length = 12 + length + p;
    RequestOutputStream o = display.out;
    synchronized (o) {
      large_render_request.begin(o, 2, 12, length + p);

      large_render_request.write_int32 (length);
      large_render_request.write_int32 (type);

      large_render_request.begin_large_parameter();

      switch (type) {
      case BYTE:                  // fall through
      case UNSIGNED_BYTE: 
        byte [] array1 = (byte []) lists;
        for (int i = 0; i < array1.length; i++)
          large_render_request.write_int8 (array1 [i]);
        break;

      case SHORT:                 // fall through
      case UNSIGNED_SHORT:        // fall through
      case X2_BYTES: 
        int [] array2 = (int []) lists;
        for (int i = 0; i < array2.length; i++)
          large_render_request.write_int16 (array2 [i]);
        break;

      case INT:                   // fall through
      case UNSIGNED_INT:          // fall through
      case X4_BYTES: 
        int [] array3 = (int []) lists;
        for (int i = 0; i < array3.length; i++)
          large_render_request.write_int32 (array3 [i]);
        break;

      case FLOAT: 
        float [] array4 = (float []) lists;
        for (int i = 0; i < array4.length; i++)
          large_render_request.write_float32 (array4 [i]);
        break;
      case X3_BYTES:
        byte [] array5 = (byte []) lists;
        for (int i = 0; i < array5.length; i++)
          large_render_request.write_int8 (array5 [i]);
        break;
      default:
        return;
      }
      large_render_request.write_pad (p);
    }

  }