Changeset 4389

Show
Ignore:
Timestamp:
09/29/06 15:40:40 (2 years ago)
Author:
morris
Message:

Use more enumerators

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libwired/trunk/libwired/collections/wi-array.c

    r4116 r4389  
    228228 
    229229wi_array_t * wi_array_init_with_list(wi_array_t *array, wi_list_t *list) { 
    230         wi_list_node_t *node
    231         void                    *data; 
     230        wi_enumerator_t                *enumerator
     231        void                           *data; 
    232232         
    233233        array = wi_array_init_with_capacity(array, wi_list_count(list)); 
    234          
    235         WI_LIST_FOREACH(list, node, data) 
     234        enumerator = wi_list_data_enumerator(list); 
     235         
     236        while((data = wi_enumerator_next_data(enumerator))) 
    236237                wi_array_add_data(array, data); 
    237238         
  • libwired/trunk/libwired/collections/wi-list.c

    r4116 r4389  
    223223static wi_runtime_instance_t * _wi_list_copy(wi_runtime_instance_t *instance) { 
    224224        wi_list_t                               *list = instance, *list_copy; 
    225         wi_list_node_t                 *node
    226         wi_runtime_instance_t *data; 
     225        wi_enumerator_t                        *enumerator
     226        void                                  *data; 
    227227         
    228228        list_copy = wi_list_init_with_callbacks(wi_list_alloc(), list->callbacks); 
    229          
    230         WI_LIST_FOREACH(list, node, data) 
     229        enumerator = wi_list_data_enumerator(list); 
     230         
     231        while((data = wi_enumerator_next_data(enumerator))) 
    231232                wi_list_append_data(list_copy, data); 
    232233         
     
    265266static wi_string_t * _wi_list_description(wi_runtime_instance_t *instance) { 
    266267        wi_list_t                       *list = instance; 
    267         wi_list_node_t         *node
     268        wi_enumerator_t                *enumerator
    268269        wi_string_t                     *string, *description; 
    269270        void                            *data; 
     
    274275                list->count); 
    275276         
    276         WI_LIST_FOREACH(list, node, data) { 
     277        enumerator = wi_list_data_enumerator(list); 
     278         
     279        while((data = wi_enumerator_next_data(enumerator))) { 
    277280                if(list->callbacks.description) 
    278281                        description = (*list->callbacks.description)(data); 
     
    295298        wi_rwlock_wrlock(list->lock); 
    296299} 
    297  
    298300 
    299301 
     
    727729 
    728730void wi_list_append_data_from_list(wi_list_t *list, wi_list_t *otherlist) { 
    729         wi_list_node_t         *node
     731        wi_enumerator_t                *enumerator
    730732        void                            *data; 
    731733         
    732         WI_LIST_FOREACH(otherlist, node, data) 
     734        enumerator = wi_list_data_enumerator(list); 
     735         
     736        while((data = wi_enumerator_next_data(enumerator))) 
    733737                wi_list_append_data(list, data); 
    734738} 
  • libwired/trunk/libwired/net/wi-host.c

    r4051 r4389  
    158158        wi_host_t                       *host1 = instance1; 
    159159        wi_host_t                       *host2 = instance2; 
     160        wi_enumerator_t         *enumerator; 
    160161        wi_list_t                       *addresses1; 
    161162        wi_list_t                       *addresses2; 
    162         wi_list_node_t          *node; 
    163163        wi_address_t            *address; 
    164         wi_boolean_t            equal = false; 
     164        wi_boolean_t            equal = true; 
    165165 
    166166        addresses1 = wi_host_addresses(host1); 
    167167        addresses2 = wi_host_addresses(host2); 
    168168         
    169         if(addresses1 && addresses2) { 
    170                 WI_LIST_FOREACH(addresses1, node, address) { 
    171                         if(wi_list_contains_data(addresses2, address)) { 
    172                                 equal = true; 
    173                                  
    174                                 break; 
    175                         } 
     169        if(!addresses1 || !addresses2) 
     170                return false; 
     171         
     172        if(wi_list_count(addresses1) != wi_list_count(addresses2)) 
     173                return false; 
     174         
     175        enumerator = wi_list_data_enumerator(addresses1); 
     176         
     177        while((address = wi_enumerator_next_data(enumerator))) { 
     178                if(!wi_list_contains_data(addresses2, address)) { 
     179                        equal = false; 
     180                         
     181                        break; 
    176182                } 
    177183        } 
  • libwired/trunk/libwired/net/wi-socket.c

    r4099 r4389  
    838838 
    839839wi_socket_t * wi_socket_wait_multiple(wi_list_t *list, wi_time_interval_t timeout) { 
    840         wi_list_node_t         *node
     840        wi_enumerator_t                *enumerator
    841841        wi_socket_t                     *socket, *accept_socket; 
    842842        struct timeval          tv; 
     
    851851 
    852852        wi_list_rdlock(list); 
    853         WI_LIST_FOREACH(list, node, socket) { 
     853         
     854        enumerator = wi_list_data_enumerator(list); 
     855         
     856        while((socket = wi_enumerator_next_data(enumerator))) { 
    854857                if(socket->direction & WI_SOCKET_READ) 
    855858                        FD_SET(socket->sd, &rfds); 
     
    861864                        max_sd = socket->sd; 
    862865        } 
     866 
    863867        wi_list_unlock(list); 
    864868         
     
    874878         
    875879        wi_list_rdlock(list); 
    876         WI_LIST_FOREACH(list, node, socket) { 
     880 
     881        enumerator = wi_list_data_enumerator(list); 
     882         
     883        while((socket = wi_enumerator_next_data(enumerator))) { 
    877884                if(FD_ISSET(socket->sd, &rfds) || FD_ISSET(socket->sd, &wfds)) { 
    878885                        accept_socket = socket; 
     
    881888                } 
    882889        } 
     890         
    883891        wi_list_unlock(list); 
    884892         
  • libwired/trunk/libwired/system/wi-terminal.c

    r4387 r4389  
    112112static void                                                                             _wi_terminal_buffer_reload(wi_terminal_buffer_t *); 
    113113 
     114 
    114115static char                                                                             _wi_terminal_flush_buffer[_WI_TERMINAL_FLUSH_BUFFER_SIZE]; 
    115116static uint32_t                                                                 _wi_terminal_flush_offset; 
     
    357358 
    358359void wi_terminal_set_size(wi_terminal_t *terminal, wi_size_t size) { 
    359         uint32_t                i, count; 
     360        wi_enumerator_t                 *enumerator; 
     361        wi_terminal_buffer_t    *buffer; 
    360362         
    361363        terminal->co = size.width; 
    362364        terminal->li = size.height; 
    363365         
    364         count = wi_array_count(terminal->buffers); 
    365          
    366         for(i = 0; i < count; i++
    367                 _wi_terminal_buffer_reload(WI_ARRAY(terminal->buffers, i)); 
     366        enumerator = wi_array_data_enumerator(terminal->buffers); 
     367         
     368        while((buffer = wi_enumerator_next_data(enumerator))
     369                _wi_terminal_buffer_reload(buffer); 
    368370} 
    369371 
     
    560562 
    561563static wi_array_t * _wi_terminal_buffer_lines_for_string(wi_terminal_buffer_t *buffer, wi_string_t *string) { 
    562         wi_array_t              *array, *linearray; 
     564        wi_enumerator_t *enumerator; 
     565        wi_array_t              *array; 
    563566        wi_string_t             *string_copy, *line, *subline; 
    564567        wi_size_t               size; 
    565         uint32_t                i, count, index; 
     568        uint32_t                index; 
    566569         
    567570        array           = wi_array_init(wi_array_alloc()); 
    568571        size            = wi_terminal_size(buffer->terminal); 
    569         linearray       = wi_string_components_separated_by_string(string, WI_STR("\n")); 
    570         count           = wi_array_count(linearray); 
    571          
    572         for(i = 0; i < count; i++) { 
    573                 line = WI_ARRAY(linearray, i); 
    574                  
     572        enumerator      = wi_array_data_enumerator(wi_string_components_separated_by_string(string, WI_STR("\n"))); 
     573         
     574        while((line = wi_enumerator_next_data(enumerator))) { 
    575575                if(wi_terminal_width_of_string(buffer->terminal, line) < size.width) { 
    576576                        wi_array_add_data(array, line); 
     
    610610 
    611611wi_boolean_t wi_terminal_buffer_printf(wi_terminal_buffer_t *buffer, wi_string_t *fmt, ...) { 
     612        wi_enumerator_t *enumerator; 
    612613        wi_array_t              *array; 
    613         wi_string_t             *string
     614        wi_string_t             *string, *line
    614615        wi_point_t              location; 
    615616        va_list                 ap; 
    616         uint32_t                i, count; 
    617617        wi_boolean_t    result = false; 
    618618         
     
    628628                        wi_terminal_move(buffer->terminal, wi_make_point(0, wi_terminal_scroll(buffer->terminal).length)); 
    629629                         
    630                         count = wi_array_count(array); 
     630                        enumerator = wi_array_data_enumerator(array); 
    631631                         
    632                         for(i = 0; i < count; i++) { 
     632                        while((line = wi_enumerator_next_data(enumerator))) { 
    633633                                _wi_terminal_puts(buffer->terminal, WI_STR("\n")); 
    634                                 _wi_terminal_puts(buffer->terminal, WI_ARRAY(array, i)); 
     634                                _wi_terminal_puts(buffer->terminal, line); 
    635635                                 
    636636                                buffer->line++;