5 // Created by Chaz McGarvey on 12/29/04.
6 // Copyright 2004 Chaz McGarvey. All rights reserved.
9 #import "CheaterTypes.h"
12 TCArray
TCMakeArray( unsigned count
, unsigned size
)
14 TCArray array
= (TCArray
)malloc( sizeof(struct _TCArray
) );
17 array
->_bytes
= malloc( count
* size
);
19 if ( array
->_bytes
) {
20 array
->_count
= count
;
22 array
->_ownsBytes
= YES
;
32 TCArray
TCMakeArrayWithBytes( unsigned count
, unsigned size
, void *bytes
)
34 TCArray array
= TCMakeArray( count
, size
);
36 if ( array
&& bytes
) {
37 memcpy( array
->_bytes
, bytes
, count
* size
);
42 void TCReleaseArray( TCArray array
)
44 if ( array
&& array
->_ownsBytes
) {
45 free( array
->_bytes
);
51 void TCArrayAppendArray( TCArray array
, TCArray other
)
53 unsigned oldCount
= array
->_count
;
54 unsigned count
= oldCount
+ other
->_count
;
56 if ( array
->_size
!= other
->_size
) {
60 TCArrayResize( array
, count
);
61 if ( array
->_count
== count
) {
62 memcpy( array
->_bytes
+ oldCount
* array
->_size
, other
->_bytes
, other
->_count
* other
->_size
);
67 NSString
*TCStringFromArray( TCArray array
)
69 return [NSString stringWithFormat
:@
"{%p,%u,%u}", array
->_bytes
, array
->_count
, array
->_size
];