diff options
author | chriseth <chris@ethereum.org> | 2018-12-18 23:38:25 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2018-12-18 23:38:25 +0800 |
commit | bd52beedfff7196070880abbd396f5c7469314d0 (patch) | |
tree | 55ed2be4b5004686a180275db3ab4a6554772bf2 /libsolidity/interface/CompilerStack.h | |
parent | a51a8368aaa44bd1b26eb6869b107f6f3b3eec05 (diff) | |
download | dexon-solidity-bd52beedfff7196070880abbd396f5c7469314d0.tar.gz dexon-solidity-bd52beedfff7196070880abbd396f5c7469314d0.tar.zst dexon-solidity-bd52beedfff7196070880abbd396f5c7469314d0.zip |
Cache hash computations.
Diffstat (limited to 'libsolidity/interface/CompilerStack.h')
-rw-r--r-- | libsolidity/interface/CompilerStack.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libsolidity/interface/CompilerStack.h b/libsolidity/interface/CompilerStack.h index 74033170..81d5009f 100644 --- a/libsolidity/interface/CompilerStack.h +++ b/libsolidity/interface/CompilerStack.h @@ -261,7 +261,11 @@ private: std::shared_ptr<langutil::Scanner> scanner; std::shared_ptr<SourceUnit> ast; bool isLibrary = false; - void reset() { scanner.reset(); ast.reset(); } + h256 mutable keccak256HashCached; + h256 mutable swarmHashCached; + void reset() { *this = Source(); } + h256 const& keccak256() const; + h256 const& swarmHash() const; }; /// The state per contract. Filled gradually during compilation. @@ -315,7 +319,7 @@ private: std::string createMetadata(Contract const& _contract) const; /// @returns the metadata CBOR for the given serialised metadata JSON. - static bytes createCBORMetadata(std::string _metadata, bool _experimentalMode); + static bytes createCBORMetadata(std::string const& _metadata, bool _experimentalMode); /// @returns the computer source mapping string. std::string computeSourceMapping(eth::AssemblyItems const& _items) const; |