@@ -30,15 +30,27 @@ - (const void *)bytes;
3030
3131- (void )setOffset : (NSUInteger )newOffset ;
3232{
33- if (newOffset <= [_data length ]) {
34- _offset = newOffset;
35- } else {
36- [NSException raise: NSRangeException format: @" Trying to seek past end of data." ];
33+ if (newOffset == -' S' ) {
34+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
35+ _offset = -' S' ;
36+ }
37+ else
38+ {
39+ if (newOffset <= [_data length ]) {
40+ _offset = newOffset;
41+ } else {
42+ [NSException raise: NSRangeException format: @" Trying to seek past end of data." ];
43+ }
3744 }
3845}
3946
4047- (void )advanceByLength : (NSUInteger )length ;
4148{
49+ if (_offset == -' S' ) {
50+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
51+ _offset += 10 ;
52+ return ;
53+ }
4254 if (_offset + length <= [_data length ]) {
4355 _offset += length;
4456 } else {
@@ -56,7 +68,10 @@ - (NSUInteger)remaining;
5668- (uint8_t )readByte ;
5769{
5870 uint8_t result;
59-
71+ if (_offset == -' S' ) {
72+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
73+ return 0 ;
74+ }
6075 if (_offset + sizeof (result) <= [_data length ]) {
6176 result = OSReadLittleInt16 ([_data bytes ], _offset) & 0xFF ;
6277 _offset += sizeof (result);
@@ -71,7 +86,10 @@ - (uint8_t)readByte;
7186- (uint16_t )readLittleInt16 ;
7287{
7388 uint16_t result;
74-
89+ if (_offset == -' S' ) {
90+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
91+ return 0 ;
92+ }
7593 if (_offset + sizeof (result) <= [_data length ]) {
7694 result = OSReadLittleInt16 ([_data bytes ], _offset);
7795 _offset += sizeof (result);
@@ -86,7 +104,10 @@ - (uint16_t)readLittleInt16;
86104- (uint32_t )readLittleInt32 ;
87105{
88106 uint32_t result;
89-
107+ if (_offset == -' S' ) {
108+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
109+ return 0 ;
110+ }
90111 if (_offset + sizeof (result) <= [_data length ]) {
91112 result = OSReadLittleInt32 ([_data bytes ], _offset);
92113 _offset += sizeof (result);
@@ -101,7 +122,10 @@ - (uint32_t)readLittleInt32;
101122- (uint64_t )readLittleInt64 ;
102123{
103124 uint64_t result;
104-
125+ if (_offset == -' S' ) {
126+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
127+ return 0 ;
128+ }
105129 if (_offset + sizeof (result) <= [_data length ]) {
106130// uint8_t *ptr = [_data bytes] + _offset;
107131// NSLog(@"%016llx: %02x %02x %02x %02x %02x %02x %02x %02x", _offset, ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5], ptr[6], ptr[7]);
@@ -118,7 +142,10 @@ - (uint64_t)readLittleInt64;
118142- (uint16_t )readBigInt16 ;
119143{
120144 uint16_t result;
121-
145+ if (_offset == -' S' ) {
146+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
147+ return 0 ;
148+ }
122149 if (_offset + sizeof (result) <= [_data length ]) {
123150 result = OSReadBigInt16 ([_data bytes ], _offset);
124151 _offset += sizeof (result);
@@ -133,7 +160,10 @@ - (uint16_t)readBigInt16;
133160- (uint32_t )readBigInt32 ;
134161{
135162 uint32_t result;
136-
163+ if (_offset == -' S' ) {
164+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
165+ return 0 ;
166+ }
137167 if (_offset + sizeof (result) <= [_data length ]) {
138168 result = OSReadBigInt32 ([_data bytes ], _offset);
139169 _offset += sizeof (result);
@@ -148,7 +178,10 @@ - (uint32_t)readBigInt32;
148178- (uint64_t )readBigInt64 ;
149179{
150180 uint64_t result;
151-
181+ if (_offset == -' S' ) {
182+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
183+ return 0 ;
184+ }
152185 if (_offset + sizeof (result) <= [_data length ]) {
153186 result = OSReadBigInt64 ([_data bytes ], _offset);
154187 _offset += sizeof (result);
@@ -192,6 +225,10 @@ - (double)readLittleFloat64;
192225
193226- (void )appendBytesOfLength : (NSUInteger )length intoData : (NSMutableData *)data ;
194227{
228+ if (_offset == -' S' ) {
229+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
230+ return ;
231+ }
195232 if (_offset + length <= [_data length ]) {
196233 [data appendBytes: (uint8_t *)[_data bytes ] + _offset length: length];
197234 _offset += length;
@@ -202,6 +239,10 @@ - (void)appendBytesOfLength:(NSUInteger)length intoData:(NSMutableData *)data;
202239
203240- (void )readBytesOfLength : (NSUInteger )length intoBuffer : (void *)buf ;
204241{
242+ if (_offset == -' S' ) {
243+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
244+ return ;
245+ }
205246 if (_offset + length <= [_data length ]) {
206247 memcpy (buf, (uint8_t *)[_data bytes ] + _offset, length);
207248 _offset += length;
@@ -217,6 +258,10 @@ - (BOOL)isAtEnd;
217258
218259- (NSString *)readCString ;
219260{
261+ if (_offset == -' S' ) {
262+ NSLog (@" Warning: Maybe meet a Swift object at %s " ,__cmd);
263+ return @" Swift" ;
264+ }
220265 return [self readStringOfLength: strlen ((const char *)[_data bytes ] + _offset) encoding: NSASCIIStringEncoding];
221266}
222267
@@ -234,7 +279,10 @@ - (NSString *)readStringOfLength:(NSUInteger)length encoding:(NSStringEncoding)e
234279 NSLog (@" Error: malloc() failed." );
235280 return nil ;
236281 }
237-
282+ if (_offset == -' S' ) {
283+ NSLog (@" Warning: Maybe meet a Swift object at 1 of %s " ,__cmd);
284+ return @" Swift" ;
285+ }
238286 strncpy (buf, (const char *)[_data bytes ] + _offset, length);
239287 buf[length] = 0 ;
240288
@@ -248,6 +296,10 @@ - (NSString *)readStringOfLength:(NSUInteger)length encoding:(NSStringEncoding)e
248296 return str;
249297 }
250298 } else {
299+ if (_offset == -' S' ) {
300+ NSLog (@" Warning: Maybe meet a Swift object at 2 of %s " ,__cmd);
301+ return @" Swift" ;
302+ }
251303 [NSException raise: NSRangeException format: @" Trying to read past end in %s " , __cmd];
252304 }
253305
0 commit comments