Changeset 336 for trunk/thune/make.c

Show
Ignore:
Timestamp:
01/05/07 21:14:50 (2 years ago)
Author:
krobillard
Message:

Thune - Added lshift, rshift. Improved bitset!.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/thune/make.c

    r327 r336  
    869869    UBinary* bin; 
    870870    uint8_t* bits; 
    871  
    872     binN = ur_makeBinary( ur_is(from, UT_INT) ? ur_int(from) : 32 ); 
     871    int len; 
     872 
     873 
     874    switch( ur_type(from) ) 
     875    { 
     876        case UT_INT: 
     877            len = (ur_int(from) + 7) / 8; 
     878            break; 
     879 
     880        case UT_BINARY: 
     881            bin  = ur_bin(from); 
     882            len  = bin->used; 
     883            bits = bin->ptr.b; 
     884 
     885            binN = ur_makeBinary( bin->used ); 
     886            bin  = ur_binPtr( binN ); 
     887            bin->used = len; 
     888            memCpy( bin->ptr.b, bits, len ); 
     889            return binN; 
     890 
     891        default: 
     892            len = 32; 
     893            break; 
     894    } 
     895 
     896    binN = ur_makeBinary( len ); 
    873897    bin = ur_binPtr( binN ); 
    874     bin->used = bin->avail; 
     898    bin->used = len; 
    875899    bits = bin->ptr.b; 
    876900 
     
    930954            } 
    931955        } 
    932             break; 
    933  
    934         case UT_BINARY: 
    935             _setBitsetBin( bits, from ); 
    936956            break; 
    937957