Overview
Comment: | Let operations on OFNumbers return a new one. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
5e652372765f097365a45b4eebe00beb |
User & Date: | js on 2010-03-05 03:21:49 |
Other Links: | manifest | tags |
Context
2010-03-13
| ||
21:24 | Add global variable of_pagesize and use it to reduce code duplication. check-in: 382ed34d40 user: js tags: trunk | |
2010-03-05
| ||
03:21 | Let operations on OFNumbers return a new one. check-in: 5e65237276 user: js tags: trunk | |
00:04 | Improve -[hash] for OFNumbers with floats and doubles. check-in: 5265f8d08b user: js tags: trunk | |
Changes
Modified src/OFNumber.h from [6900966d0c] to [b4de2a5a33].
︙ | ︙ | |||
533 534 535 536 537 538 539 | /** * \return The OFNumber as a double */ - (double)asDouble; /** | < < > < < > < < > < < > | | | 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 | /** * \return The OFNumber as a double */ - (double)asDouble; /** * \param num The OFNumber to add * \return The OFNumber added with the specified OFNumber */ - add: (OFNumber*)num; /** * \param num The OFNumber to substract * \return The OFNumber subtracted by the specified OFNumber */ - subtract: (OFNumber*)num; /** * \param num The OFNumber to multiply with * \return The OFNumber multiplied with the specified OFNumber */ - multiplyWith: (OFNumber*)num; /** * \param num The OFNumber to divide by * \return The OFNumber devided by the specified OFNumber */ - divideBy: (OFNumber*)num; /** * \return The OFNumber increased by one. */ - increase; /** * \return The OFNumber decreased by one. */ - decrease; @end |
Modified src/OFNumber.m from [7ea4c5f34b] to [6467769256].
︙ | ︙ | |||
64 65 66 67 68 69 70 | case OF_NUMBER_FLOAT: \ return (t)value.float_; \ case OF_NUMBER_DOUBLE: \ return (t)value.double_; \ default: \ @throw [OFInvalidFormatException newWithClass: isa]; \ } | | | > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < > | < | | | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | < | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | case OF_NUMBER_FLOAT: \ return (t)value.float_; \ case OF_NUMBER_DOUBLE: \ return (t)value.double_; \ default: \ @throw [OFInvalidFormatException newWithClass: isa]; \ } #define CALCULATE(o, n) \ switch (type) { \ case OF_NUMBER_CHAR: \ return [OFNumber numberWithChar: \ value.char_ o [n asChar]]; \ case OF_NUMBER_SHORT: \ return [OFNumber numberWithShort: \ value.short_ o [n asShort]]; \ case OF_NUMBER_INT: \ return [OFNumber numberWithInt: \ value.int_ o [n asInt]]; \ case OF_NUMBER_LONG: \ return [OFNumber numberWithLong: \ value.long_ o [n asLong]]; \ case OF_NUMBER_UCHAR: \ return [OFNumber numberWithUChar: \ value.uchar o [n asUChar]]; \ case OF_NUMBER_USHORT: \ return [OFNumber numberWithUShort: \ value.ushort o [n asUShort]]; \ case OF_NUMBER_UINT: \ return [OFNumber numberWithUInt: \ value.uint o [n asUInt]]; \ case OF_NUMBER_ULONG: \ return [OFNumber numberWithULong: \ value.ulong o [n asULong]]; \ case OF_NUMBER_INT8: \ return [OFNumber numberWithInt8: \ value.int8 o [n asInt8]]; \ case OF_NUMBER_INT16: \ return [OFNumber numberWithInt16: \ value.int16 o [n asInt16]]; \ case OF_NUMBER_INT32: \ return [OFNumber numberWithInt32: \ value.int32 o [n asInt32]]; \ case OF_NUMBER_INT64: \ return [OFNumber numberWithInt64: \ value.int64 o [n asInt64]]; \ case OF_NUMBER_UINT8: \ return [OFNumber numberWithUInt8: \ value.uint8 o [n asUInt8]]; \ case OF_NUMBER_UINT16: \ return [OFNumber numberWithUInt16: \ value.uint16 o [n asUInt16]]; \ case OF_NUMBER_UINT32: \ return [OFNumber numberWithUInt32: \ value.uint32 o [n asUInt32]]; \ case OF_NUMBER_UINT64: \ return [OFNumber numberWithUInt64: \ value.uint64 o [n asUInt64]]; \ case OF_NUMBER_SIZE: \ return [OFNumber numberWithSize: \ value.size o [n asSize]]; \ case OF_NUMBER_SSIZE: \ return [OFNumber numberWithSSize: \ value.ssize o [n asSSize]]; \ case OF_NUMBER_INTMAX: \ return [OFNumber numberWithIntMax: \ value.intmax o [n asIntMax]]; \ case OF_NUMBER_UINTMAX: \ return [OFNumber numberWithUIntMax: \ value.uintmax o [n asUIntMax]]; \ case OF_NUMBER_PTRDIFF: \ return [OFNumber numberWithPtrDiff: \ value.ptrdiff o [n asPtrDiff]]; \ case OF_NUMBER_INTPTR: \ return [OFNumber numberWithIntPtr: \ value.intptr o [n asIntPtr]]; \ case OF_NUMBER_FLOAT: \ return [OFNumber numberWithFloat: \ value.float_ o [n asFloat]]; \ case OF_NUMBER_DOUBLE: \ return [OFNumber numberWithDouble: \ value.double_ o [n asDouble]]; \ default: \ @throw [OFInvalidFormatException newWithClass: isa]; \ } #define CALCULATE2(o) \ switch (type) { \ case OF_NUMBER_CHAR: \ return [OFNumber numberWithChar: value.char_ o]; \ case OF_NUMBER_SHORT: \ return [OFNumber numberWithShort: value.short_ o]; \ case OF_NUMBER_INT: \ return [OFNumber numberWithInt: value.int_ o]; \ case OF_NUMBER_LONG: \ return [OFNumber numberWithLong: value.long_ o]; \ case OF_NUMBER_UCHAR: \ return [OFNumber numberWithUChar: value.uchar o]; \ case OF_NUMBER_USHORT: \ return [OFNumber numberWithUShort: value.ushort o]; \ case OF_NUMBER_UINT: \ return [OFNumber numberWithUInt: value.uint o]; \ case OF_NUMBER_ULONG: \ return [OFNumber numberWithULong: value.ulong o]; \ case OF_NUMBER_INT8: \ return [OFNumber numberWithInt8: value.int8 o]; \ case OF_NUMBER_INT16: \ return [OFNumber numberWithInt16: value.int16 o]; \ case OF_NUMBER_INT32: \ return [OFNumber numberWithInt32: value.int32 o]; \ case OF_NUMBER_INT64: \ return [OFNumber numberWithInt64: value.int64 o]; \ case OF_NUMBER_UINT8: \ return [OFNumber numberWithUInt8: value.uint8 o]; \ case OF_NUMBER_UINT16: \ return [OFNumber numberWithUInt16: value.uint16 o]; \ case OF_NUMBER_UINT32: \ return [OFNumber numberWithUInt32: value.uint32 o]; \ case OF_NUMBER_UINT64: \ return [OFNumber numberWithUInt64: value.uint64 o]; \ case OF_NUMBER_SIZE: \ return [OFNumber numberWithSize: value.size o]; \ case OF_NUMBER_SSIZE: \ return [OFNumber numberWithSSize: value.ssize o]; \ case OF_NUMBER_INTMAX: \ return [OFNumber numberWithIntMax: value.intmax o]; \ case OF_NUMBER_UINTMAX: \ return [OFNumber numberWithUIntMax: value.uintmax o]; \ case OF_NUMBER_PTRDIFF: \ return [OFNumber numberWithPtrDiff: value.ptrdiff o]; \ case OF_NUMBER_INTPTR: \ return [OFNumber numberWithIntPtr: value.intptr o]; \ case OF_NUMBER_FLOAT: \ return [OFNumber numberWithFloat: value.float_ o]; \ case OF_NUMBER_DOUBLE: \ return [OFNumber numberWithDouble: value.double_ o]; \ default: \ @throw [OFInvalidFormatException newWithClass: isa]; \ } @implementation OFNumber + numberWithChar: (char)char_ { |
︙ | ︙ | |||
780 781 782 783 784 785 786 | default: return [self asUInt32]; } } - add: (OFNumber*)num { | | < | < | < | < | < | < | 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 | default: return [self asUInt32]; } } - add: (OFNumber*)num { CALCULATE(+, num) } - subtract: (OFNumber*)num { CALCULATE(-, num) } - multiplyWith: (OFNumber*)num { CALCULATE(*, num) } - divideBy: (OFNumber*)num { CALCULATE(/, num) } - increase { CALCULATE2(+ 1) } - decrease { CALCULATE2(- 1) } @end |