Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Changeset 3667

Show
Ignore:
Timestamp:
06/23/08 00:16:39 (5 months ago)
Author:
kris
Message:

added unused() and optimized opApply()

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tango/util/container/more/Stack.d

    r3657 r3667  
    5353        { 
    5454                return depth; 
     55        } 
     56 
     57        /*********************************************************************** 
     58                 
     59                Return remaining unused slots 
     60 
     61        ***********************************************************************/ 
     62 
     63        uint unused () 
     64        { 
     65                return Size - depth; 
    5566        } 
    5667 
     
    262273                        int result; 
    263274 
    264                         for (int i=depth; i--;) 
    265                             { 
    266                             auto value = stack [i]; 
    267                             if ((result = dg(value)) != 0) 
    268                                  break; 
    269                             } 
     275                        for (int i=depth; i-- && result is 0;) 
     276                             result = dg (stack[i]); 
    270277                        return result; 
    271278        } 
  • trunk/tango/util/container/more/Vector.d

    r3662 r3667  
    5252        { 
    5353                return depth; 
     54        } 
     55 
     56        /*********************************************************************** 
     57                 
     58                Return remaining unused slots 
     59 
     60        ***********************************************************************/ 
     61 
     62        uint unused () 
     63        { 
     64                return Size - depth; 
    5465        } 
    5566 
     
    209220                        int result; 
    210221 
    211                         for (int i=depth; i--;) 
    212                             { 
    213                             auto value = vector [i]; 
    214                             if ((result = dg(value)) != 0) 
    215                                  break; 
    216                             } 
     222                        for (int i=depth; i-- && result is 0;) 
     223                             result = dg (vector [i]); 
    217224                        return result; 
    218225        } 
     
    228235                        int result; 
    229236 
    230                         for (int i=depth; i--;) 
     237                        for (int i=depth; i-- && result is 0;) 
    231238                            { 
    232239                            auto kill = false; 
    233                             auto value = vector [i]; 
    234                             if ((result = dg(value, kill)) != 0) 
    235                                  break; 
    236                             else 
    237                                if (kill) 
    238                                    remove (i); 
     240                            result = dg (vector[i], kill); 
     241                            if (kill) 
     242                                remove (i); 
    239243                            } 
    240244                        return result;