IntegerArray.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 23 Jun 2021 12:50:05 +0100
branchjv
changeset 25430 acd92449dc30
parent 20653 ab6ec0c97bf5
child 21428 f9999b90dcab
permissions -rw-r--r--
`Process`: revert `#interruptWith:` Commit 3b02b0f1f647: Cherry-picked `Semaphore`, `EventSemaphore, `Process` and `ProcessorScheduler` changes `Process >> #interruptWith:` but this - for not yet known reason - breaks stx:libjava tests. This commit reverts the code to version before that commit, fixing tests.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20653
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	      All Rights Reserved
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Smalltalk }"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
UnboxedIntegerArray variableLongSubclass:#IntegerArray
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:''
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Collections-Arrayed'
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!IntegerArray class methodsFor:'documentation'!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 1997 by eXept Software AG
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	      All Rights Reserved
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 hereby transferred.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
documentation
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    IntegerArrays store integers in the range 0..16rFFFFFFFF.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    In contrast to normal arrays (which store pointers to their elements),
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    integerArrays store the values in a dense & compact way. 
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    Since the representation fits the underlying C-language systems representation
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    of unsigned int32's, this is also useful to pass bulk data to c primitive code.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    [memory requirements:]
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
        OBJ-HEADER + (size * 4)
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    [see also:]
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
        ByteArray BooleanArray FloatArray DoubleArray Array
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
        SignedWordArray WordArray
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    [author:]
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
        Claus Gittinger
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
! !
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!IntegerArray class methodsFor:'queries'!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
elementByteSize
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    "for bit-like containers, return the number of bytes stored per element.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
     Here, 4 is returned"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    ^ 4
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    "Created: / 15-09-2011 / 14:12:15 / cg"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
maxVal
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    "the maximum value which can be stored in instances of me"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    ^ 16rFFFFFFFF
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
minVal
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    "the minimum value which can be stored in instances of me"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    ^ 0
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
! !
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
!IntegerArray methodsFor:'accessing'!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
unsignedInt32At:index MSB:msb
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    "return the 4-bytes starting at index as an (unsigned) Integer.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
     The index is a smalltalk index (i.e. 1-based).
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
     The value is retrieved MSB (high 8 bits at lower index) if msb is true;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
     LSB-first (i.e. low 8-bits at lower byte index) if its false.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
     Notice: 
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
        the index is a byte index; thus, this allows for unaligned access to
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
        words on any boundary.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
     Question: should it be retrieve signed values ? (see ByteArray>>signedWordAt:)"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    |w|
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    (index bitAnd: 16r03) == 1 ifTrue:[
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
        "/ aligned fetch
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
        w := self at:(index // 4) + 1.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
        (msb ~~ UninterpretedBytes isBigEndian) ifTrue:[
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
            w := w swapBytes
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
        ].    
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
        ^ w
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    ].
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    ^ super unsignedInt32At:index MSB:msb
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    "
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
     #(16r0201 16r0403 16r0605) asIntegerArray unsignedInt32At:1 MSB:false 
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
     #(16r0201 16r0403 16r0605) asIntegerArray unsignedInt32At:5 MSB:false
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
     #(16r0201 16r0403 16r0605) asIntegerArray unsignedInt32At:9 MSB:false
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
     #(16r0201 16r0403 16r0605) asIntegerArray unsignedInt32At:2 MSB:false
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
     #(16r0201 16r0403 16r0605) asIntegerArray unsignedInt32At:3 MSB:false
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
     #(16r0201 16r0403 16r0605) asIntegerArray unsignedInt32At:4 MSB:false
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
     #(16rFFEE 16r0403 16r0605) asIntegerArray unsignedInt32At:1 MSB:false
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
     #(16rFFEE 16r0403 16r0605) asIntegerArray unsignedInt32At:1 MSB:true
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
    "
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
! !
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
!IntegerArray methodsFor:'comparing'!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
< anIntegerArray
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    "Compare the receiver with the argument and return true if the
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
     receiver is greater than the argument. Otherwise return false.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
     Redefined for speed (xpath handling)"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
%{  /* NOCONTEXT */
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
    int len1, len2, min, i;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    REGISTER OBJ s = anIntegerArray;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    unsigned int *ip1, *ip2;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
    OBJ cls;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    OBJ myCls;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    if (__isNonNilObject(s)) {
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
        cls = __qClass(s);
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
        myCls = __qClass(self);
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
        if ((cls == IntegerArray) || (cls == myCls)) {
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
            ip2 = __integerArrayVal(s);
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
            len2 = __integerArraySize(s);
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
            /*
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
             * care for instances of subclasses ...
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
             */
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
            if (cls != IntegerArray) {
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
                int n = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars)) / sizeof(__integerArrayVal(s));
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
                ip2 += n;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
                len2 -= n;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
            }
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
            ip1 = __integerArrayVal(self);
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
            len1 = __integerArraySize(self);
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
            /*
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
             * care for instances of subclasses ...
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
             */
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
            if (myCls != IntegerArray) {
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
                int n = __OBJS2BYTES__(__intVal(__ClassInstPtr(myCls)->c_ninstvars)) / sizeof(__integerArrayVal(s));
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
                ip1 += n;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
                len1 -= n;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
            }
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
            if (len1 <= len2)
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
                min = len1;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
            else
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
                min = len2;
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
            for (i = 0; i < min; i++) {
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
                if (ip1[i] < ip2[i]) {
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
                    RETURN(true)
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
                }
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
                if (ip1[i] > ip2[i]) {
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
                    RETURN(false)
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
                }
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
            }
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
            if (len1 < len2) {
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
                RETURN ( true );
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
            }
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
            RETURN ( false );
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
        }
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    }
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
%}.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    ^ super < anIntegerArray
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    "
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
        (IntegerArray newFrom:#[1 2 3 4 5]) < (IntegerArray newFrom:#[1 2 3 4 5])
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
        (IntegerArray newFrom:#[1 2 3 4 5]) < (IntegerArray newFrom:#[1 2 3 4])
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
        (IntegerArray newFrom:#[1 2 3 4]) < (IntegerArray newFrom:#[1 2 3 4 5])
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
        (IntegerArray newFrom:#[1 2 3 4 5]) < (IntegerArray newFrom:#[1 2 3 4 6])
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
        (IntegerArray newFrom:#[]) < (IntegerArray newFrom:#[1 2 3 4 6])
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    "
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
! !
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
!IntegerArray methodsFor:'converting'!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
asIntegerArray
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    "return a new IntegerArray with the collection's elements.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
     That's the receiver itself here"
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    ^ self.
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
! !
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
!IntegerArray class methodsFor:'documentation'!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
version
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    ^ '$Header$'
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
!
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
version_CVS
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    ^ '$Header$'
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
! !
ab6ec0c97bf5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216