Changeset 5394

Show
Ignore:
Timestamp:
03/14/08 17:13:12 (4 months ago)
Author:
morris
Message:

Better asserts

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libwired/trunk/libwired/data/wi-string.c

    r5348 r5394  
    7777#define _WI_STRING_FORMAT_BUFSIZ                64 
    7878 
    79 #define _WI_STRING_GROW(string, n)                                                                             
    80         WI_STMT_START                                                                                                           
    81                 if((string)->length + (n) >= (string)->capacity)                               
    82                         _wi_string_grow((string), (string)->length + (n));                     
     79#define _WI_STRING_GROW(string, n)                                                                                             
     80        WI_STMT_START                                                                                                                          
     81                if((string)->length + (n) >= (string)->capacity)                                               
     82                        _wi_string_grow((string), (string)->length + (n));                                     
    8383        WI_STMT_END 
    8484 
    85 #define _WI_STRING_INDEX_ASSERT(string, index)                                                  \ 
    86         WI_ASSERT((index) <= (string)->length,                                                          \ 
    87                 "index %d out of range (length %d) in \"%@\"",                                  \ 
     85#define _WI_STRING_RANGE_ASSERT(string, range)                                                                  \ 
     86        WI_STMT_START                                                                                                                           \ 
     87                _WI_STRING_INDEX_ASSERT((string), (range).location);                                    \ 
     88                _WI_STRING_INDEX_ASSERT((string), (range).location + (range).length);   \ 
     89        WI_STMT_END 
     90 
     91#define _WI_STRING_INDEX_ASSERT(string, index)                                                                  \ 
     92        WI_ASSERT((index) <= (string)->length,                                                                          \ 
     93                "index %d out of range (length %d) in \"%@\"",                                                  \ 
    8894                (index), (string)->length, (string)) 
    8995 
     
    941947 
    942948void wi_string_delete_characters_in_range(wi_string_t *string, wi_range_t range) { 
    943         _WI_STRING_INDEX_ASSERT(string, range.location + range.length); 
     949        _WI_STRING_RANGE_ASSERT(string, range); 
    944950 
    945951        if(range.location + range.length < string->length) { 
     
    10301036 
    10311037wi_string_t * wi_string_substring_with_range(wi_string_t *string, wi_range_t range) { 
    1032         _WI_STRING_INDEX_ASSERT(string, range.location + range.length); 
    1033  
     1038        _WI_STRING_RANGE_ASSERT(string, range); 
     1039         
    10341040        return wi_autorelease(wi_string_init_with_bytes(wi_string_alloc(), string->string + range.location, range.length)); 
    10351041}