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