mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Update imported stringutils to use keccak256
This commit is contained in:
parent
acd8706309
commit
31a258458b
@ -339,7 +339,7 @@ library strings {
|
|||||||
*/
|
*/
|
||||||
function keccak(slice self) internal returns (bytes32 ret) {
|
function keccak(slice self) internal returns (bytes32 ret) {
|
||||||
assembly {
|
assembly {
|
||||||
ret := sha3(mload(add(self, 32)), mload(self))
|
ret := keccak256(mload(add(self, 32)), mload(self))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,7 +363,7 @@ library strings {
|
|||||||
let len := mload(needle)
|
let len := mload(needle)
|
||||||
let selfptr := mload(add(self, 0x20))
|
let selfptr := mload(add(self, 0x20))
|
||||||
let needleptr := mload(add(needle, 0x20))
|
let needleptr := mload(add(needle, 0x20))
|
||||||
equal := eq(sha3(selfptr, len), sha3(needleptr, len))
|
equal := eq(keccak256(selfptr, len), keccak256(needleptr, len))
|
||||||
}
|
}
|
||||||
return equal;
|
return equal;
|
||||||
}
|
}
|
||||||
@ -386,7 +386,7 @@ library strings {
|
|||||||
let len := mload(needle)
|
let len := mload(needle)
|
||||||
let selfptr := mload(add(self, 0x20))
|
let selfptr := mload(add(self, 0x20))
|
||||||
let needleptr := mload(add(needle, 0x20))
|
let needleptr := mload(add(needle, 0x20))
|
||||||
equal := eq(sha3(selfptr, len), sha3(needleptr, len))
|
equal := eq(keccak256(selfptr, len), keccak256(needleptr, len))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,7 +419,7 @@ library strings {
|
|||||||
assembly {
|
assembly {
|
||||||
let len := mload(needle)
|
let len := mload(needle)
|
||||||
let needleptr := mload(add(needle, 0x20))
|
let needleptr := mload(add(needle, 0x20))
|
||||||
equal := eq(sha3(selfptr, len), sha3(needleptr, len))
|
equal := eq(keccak256(selfptr, len), keccak256(needleptr, len))
|
||||||
}
|
}
|
||||||
|
|
||||||
return equal;
|
return equal;
|
||||||
@ -443,7 +443,7 @@ library strings {
|
|||||||
assembly {
|
assembly {
|
||||||
let len := mload(needle)
|
let len := mload(needle)
|
||||||
let needleptr := mload(add(needle, 0x20))
|
let needleptr := mload(add(needle, 0x20))
|
||||||
equal := eq(sha3(selfptr, len), sha3(needleptr, len))
|
equal := eq(keccak256(selfptr, len), keccak256(needleptr, len))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -479,11 +479,11 @@ library strings {
|
|||||||
} else {
|
} else {
|
||||||
// For long needles, use hashing
|
// For long needles, use hashing
|
||||||
bytes32 hash;
|
bytes32 hash;
|
||||||
assembly { hash := sha3(needleptr, needlelen) }
|
assembly { hash := keccak256(needleptr, needlelen) }
|
||||||
ptr = selfptr;
|
ptr = selfptr;
|
||||||
for (idx = 0; idx <= selflen - needlelen; idx++) {
|
for (idx = 0; idx <= selflen - needlelen; idx++) {
|
||||||
bytes32 testHash;
|
bytes32 testHash;
|
||||||
assembly { testHash := sha3(ptr, needlelen) }
|
assembly { testHash := keccak256(ptr, needlelen) }
|
||||||
if (hash == testHash)
|
if (hash == testHash)
|
||||||
return ptr;
|
return ptr;
|
||||||
ptr += 1;
|
ptr += 1;
|
||||||
@ -519,11 +519,11 @@ library strings {
|
|||||||
} else {
|
} else {
|
||||||
// For long needles, use hashing
|
// For long needles, use hashing
|
||||||
bytes32 hash;
|
bytes32 hash;
|
||||||
assembly { hash := sha3(needleptr, needlelen) }
|
assembly { hash := keccak256(needleptr, needlelen) }
|
||||||
ptr = selfptr + (selflen - needlelen);
|
ptr = selfptr + (selflen - needlelen);
|
||||||
while (ptr >= selfptr) {
|
while (ptr >= selfptr) {
|
||||||
bytes32 testHash;
|
bytes32 testHash;
|
||||||
assembly { testHash := sha3(ptr, needlelen) }
|
assembly { testHash := keccak256(ptr, needlelen) }
|
||||||
if (hash == testHash)
|
if (hash == testHash)
|
||||||
return ptr + needlelen;
|
return ptr + needlelen;
|
||||||
ptr -= 1;
|
ptr -= 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user