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

Changeset 3654

Show
Ignore:
Timestamp:
06/20/08 19:24:42 (3 months ago)
Author:
sean
Message:

Fixed a bug in the new compare code.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/compiler/dmd/adi.d

    r3651 r3654  
    380380    debug(adi) printf("_adEq(a1.length = %d, a2.length = %d)\n", a1.length, a2.length); 
    381381 
     382    if (a1.length != a2.length) 
     383        return 0; // not equal 
    382384    if (a1.ptr == a2.ptr) 
    383385        return 1; // equal 
    384     if (a1.length != a2.length) 
    385         return 0; // not equal 
    386386 
    387387    // We should really have a ti.isPOD() check for this 
     
    412412    debug(adi) printf("adCmp()\n"); 
    413413 
    414     if (a1.ptr == a2.ptr) 
     414    if (a1.ptr == a2.ptr && 
     415        a1.length == a2.length) 
    415416        return 0; 
     417 
    416418    auto len = a1.length; 
    417419    if (a2.length < len) 
  • trunk/lib/compiler/gdc/adi.d

    r3651 r3654  
    532532extern (C) int _adEq(Array a1, Array a2, TypeInfo ti) 
    533533{ 
    534      debug(adi) printf("_adEq(a1.length = %d, a2.length = %d)\n", a1.length, a2.length); 
    535  
     534    debug(adi) printf("_adEq(a1.length = %d, a2.length = %d)\n", a1.length, a2.length); 
     535 
     536    if (a1.length != a2.length) 
     537        return 0; // not equal 
    536538    if (a1.ptr == a2.ptr) 
    537539        return 1; // equal 
    538     if (a1.length != a2.length) 
    539         return 0; // not equal 
    540540 
    541541    // We should really have a ti.isPOD() check for this 
     
    566566    debug(adi) printf("adCmp()\n"); 
    567567 
    568     if (a1.ptr == a2.ptr) 
     568    if (a1.ptr == a2.ptr && 
     569        a1.length == a2.length) 
    569570        return 0; 
     571 
    570572    auto len = a1.length; 
    571573    if (a2.length < len)