Merge pull request #2772 from ethereum/cppcheck

Improvements found by Cppcheck (const/static functions and explicit constructors)
This commit is contained in:
chriseth 2017-08-22 12:43:19 +02:00 committed by GitHub
commit f874fc28d1
35 changed files with 63 additions and 62 deletions

View File

@ -157,7 +157,7 @@ template <> inline u256 exp10<0>()
class ScopeGuard class ScopeGuard
{ {
public: public:
ScopeGuard(std::function<void(void)> _f): m_f(_f) {} explicit ScopeGuard(std::function<void(void)> _f): m_f(_f) {}
~ScopeGuard() { m_f(); } ~ScopeGuard() { m_f(); }
private: private:

View File

@ -184,7 +184,8 @@ template <class T>
inline std::vector<T> operator+(std::vector<T> const& _a, std::vector<T> const& _b) inline std::vector<T> operator+(std::vector<T> const& _a, std::vector<T> const& _b)
{ {
std::vector<T> ret(_a); std::vector<T> ret(_a);
return ret += _b; ret += _b;
return ret;
} }
template <class T, class V> template <class T, class V>

View File

@ -59,7 +59,7 @@ public:
enum ConstructFromHashType { AlignLeft, AlignRight, FailIfDifferent }; enum ConstructFromHashType { AlignLeft, AlignRight, FailIfDifferent };
/// Construct an empty hash. /// Construct an empty hash.
FixedHash() { m_data.fill(0); } explicit FixedHash() { m_data.fill(0); }
/// Construct from another hash, filling with zeroes or cropping as necessary. /// Construct from another hash, filling with zeroes or cropping as necessary.
template <unsigned M> explicit FixedHash(FixedHash<M> const& _h, ConstructFromHashType _t = AlignLeft) { m_data.fill(0); unsigned c = std::min(M, N); for (unsigned i = 0; i < c; ++i) m_data[_t == AlignRight ? N - 1 - i : i] = _h[_t == AlignRight ? M - 1 - i : i]; } template <unsigned M> explicit FixedHash(FixedHash<M> const& _h, ConstructFromHashType _t = AlignLeft) { m_data.fill(0); unsigned c = std::min(M, N); for (unsigned i = 0; i < c; ++i) m_data[_t == AlignRight ? N - 1 - i : i] = _h[_t == AlignRight ? M - 1 - i : i]; }

View File

@ -45,7 +45,7 @@ using AssemblyItems = std::vector<AssemblyItem>;
class BlockDeduplicator class BlockDeduplicator
{ {
public: public:
BlockDeduplicator(AssemblyItems& _items): m_items(_items) {} explicit BlockDeduplicator(AssemblyItems& _items): m_items(_items) {}
/// @returns true if something was changed /// @returns true if something was changed
bool deduplicate(); bool deduplicate();
/// @returns the tags that were replaced. /// @returns the tags that were replaced.

View File

@ -61,7 +61,7 @@ public:
using Id = ExpressionClasses::Id; using Id = ExpressionClasses::Id;
using StoreOperation = KnownState::StoreOperation; using StoreOperation = KnownState::StoreOperation;
CommonSubexpressionEliminator(KnownState const& _state): m_initialState(_state), m_state(_state) {} explicit CommonSubexpressionEliminator(KnownState const& _state): m_initialState(_state), m_state(_state) {}
/// Feeds AssemblyItems into the eliminator and @returns the iterator pointing at the first /// Feeds AssemblyItems into the eliminator and @returns the iterator pointing at the first
/// item that must be fed into a new instance of the eliminator. /// item that must be fed into a new instance of the eliminator.

View File

@ -124,7 +124,7 @@ void ConstantOptimisationMethod::replaceConstants(
_items = std::move(replaced); _items = std::move(replaced);
} }
bigint LiteralMethod::gasNeeded() bigint LiteralMethod::gasNeeded() const
{ {
return combineGas( return combineGas(
simpleRunGas({Instruction::PUSH1}), simpleRunGas({Instruction::PUSH1}),
@ -139,7 +139,7 @@ CodeCopyMethod::CodeCopyMethod(Params const& _params, u256 const& _value):
{ {
} }
bigint CodeCopyMethod::gasNeeded() bigint CodeCopyMethod::gasNeeded() const
{ {
return combineGas( return combineGas(
// Run gas: we ignore memory increase costs // Run gas: we ignore memory increase costs
@ -151,7 +151,7 @@ bigint CodeCopyMethod::gasNeeded()
); );
} }
AssemblyItems CodeCopyMethod::execute(Assembly& _assembly) AssemblyItems CodeCopyMethod::execute(Assembly& _assembly) const
{ {
bytes data = toBigEndian(m_value); bytes data = toBigEndian(m_value);
AssemblyItems actualCopyRoutine = copyRoutine(); AssemblyItems actualCopyRoutine = copyRoutine();
@ -159,7 +159,7 @@ AssemblyItems CodeCopyMethod::execute(Assembly& _assembly)
return actualCopyRoutine; return actualCopyRoutine;
} }
AssemblyItems const& CodeCopyMethod::copyRoutine() const AssemblyItems const& CodeCopyMethod::copyRoutine()
{ {
AssemblyItems static copyRoutine{ AssemblyItems static copyRoutine{
u256(0), u256(0),
@ -282,7 +282,7 @@ bool ComputeMethod::checkRepresentation(u256 const& _value, AssemblyItems const&
return stack.size() == 1 && stack.front() == _value; return stack.size() == 1 && stack.front() == _value;
} }
bigint ComputeMethod::gasNeeded(AssemblyItems const& _routine) bigint ComputeMethod::gasNeeded(AssemblyItems const& _routine) const
{ {
size_t numExps = count(_routine.begin(), _routine.end(), Instruction::EXP); size_t numExps = count(_routine.begin(), _routine.end(), Instruction::EXP);
return combineGas( return combineGas(

View File

@ -63,11 +63,11 @@ public:
explicit ConstantOptimisationMethod(Params const& _params, u256 const& _value): explicit ConstantOptimisationMethod(Params const& _params, u256 const& _value):
m_params(_params), m_value(_value) {} m_params(_params), m_value(_value) {}
virtual bigint gasNeeded() = 0; virtual bigint gasNeeded() const = 0;
/// Executes the method, potentially appending to the assembly and returns a vector of /// Executes the method, potentially appending to the assembly and returns a vector of
/// assembly items the constant should be relpaced with in one sweep. /// assembly items the constant should be relpaced with in one sweep.
/// If the vector is empty, the constants will not be deleted. /// If the vector is empty, the constants will not be deleted.
virtual AssemblyItems execute(Assembly& _assembly) = 0; virtual AssemblyItems execute(Assembly& _assembly) const = 0;
protected: protected:
size_t dataSize() const { return std::max<size_t>(1, dev::bytesRequired(m_value)); } size_t dataSize() const { return std::max<size_t>(1, dev::bytesRequired(m_value)); }
@ -84,7 +84,7 @@ protected:
bigint const& _runGas, bigint const& _runGas,
bigint const& _repeatedDataGas, bigint const& _repeatedDataGas,
bigint const& _uniqueDataGas bigint const& _uniqueDataGas
) ) const
{ {
// _runGas is not multiplied by _multiplicity because the runs are "per opcode" // _runGas is not multiplied by _multiplicity because the runs are "per opcode"
return m_params.runs * _runGas + m_params.multiplicity * _repeatedDataGas + _uniqueDataGas; return m_params.runs * _runGas + m_params.multiplicity * _repeatedDataGas + _uniqueDataGas;
@ -106,8 +106,8 @@ class LiteralMethod: public ConstantOptimisationMethod
public: public:
explicit LiteralMethod(Params const& _params, u256 const& _value): explicit LiteralMethod(Params const& _params, u256 const& _value):
ConstantOptimisationMethod(_params, _value) {} ConstantOptimisationMethod(_params, _value) {}
virtual bigint gasNeeded() override; virtual bigint gasNeeded() const override;
virtual AssemblyItems execute(Assembly&) override { return AssemblyItems{}; } virtual AssemblyItems execute(Assembly&) const override { return AssemblyItems{}; }
}; };
/** /**
@ -117,11 +117,11 @@ class CodeCopyMethod: public ConstantOptimisationMethod
{ {
public: public:
explicit CodeCopyMethod(Params const& _params, u256 const& _value); explicit CodeCopyMethod(Params const& _params, u256 const& _value);
virtual bigint gasNeeded() override; virtual bigint gasNeeded() const override;
virtual AssemblyItems execute(Assembly& _assembly) override; virtual AssemblyItems execute(Assembly& _assembly) const override;
protected: protected:
AssemblyItems const& copyRoutine() const; static AssemblyItems const& copyRoutine();
}; };
/** /**
@ -141,8 +141,8 @@ public:
); );
} }
virtual bigint gasNeeded() override { return gasNeeded(m_routine); } virtual bigint gasNeeded() const override { return gasNeeded(m_routine); }
virtual AssemblyItems execute(Assembly&) override virtual AssemblyItems execute(Assembly&) const override
{ {
return m_routine; return m_routine;
} }
@ -151,8 +151,8 @@ protected:
/// Tries to recursively find a way to compute @a _value. /// Tries to recursively find a way to compute @a _value.
AssemblyItems findRepresentation(u256 const& _value); AssemblyItems findRepresentation(u256 const& _value);
/// Recomputes the value from the calculated representation and checks for correctness. /// Recomputes the value from the calculated representation and checks for correctness.
bool checkRepresentation(u256 const& _value, AssemblyItems const& _routine); static bool checkRepresentation(u256 const& _value, AssemblyItems const& _routine);
bigint gasNeeded(AssemblyItems const& _routine); bigint gasNeeded(AssemblyItems const& _routine) const;
/// Counter for the complexity of optimization, will stop when it reaches zero. /// Counter for the complexity of optimization, will stop when it reaches zero.
size_t m_maxSteps = 10000; size_t m_maxSteps = 10000;

View File

@ -50,7 +50,7 @@ struct GasPath
class PathGasMeter class PathGasMeter
{ {
public: public:
PathGasMeter(AssemblyItems const& _items); explicit PathGasMeter(AssemblyItems const& _items);
GasMeter::GasConsumption estimateMax(size_t _startIndex, std::shared_ptr<KnownState> const& _state); GasMeter::GasConsumption estimateMax(size_t _startIndex, std::shared_ptr<KnownState> const& _state);

View File

@ -50,8 +50,8 @@ public:
private: private:
void finalise(CompilerState const& _cs); void finalise(CompilerState const& _cs);
template <class T> void error() const { BOOST_THROW_EXCEPTION(T() ); } template <class T> static void error() { BOOST_THROW_EXCEPTION(T() ); }
template <class T> void error(std::string const& reason) const { template <class T> static void error(std::string const& reason) {
auto err = T(); auto err = T();
err << errinfo_comment(reason); err << errinfo_comment(reason);
BOOST_THROW_EXCEPTION(err); BOOST_THROW_EXCEPTION(err);

View File

@ -30,7 +30,7 @@ CompilerState::CompilerState()
{ {
} }
CodeFragment const& CompilerState::getDef(std::string const& _s) CodeFragment const& CompilerState::getDef(std::string const& _s) const
{ {
if (defs.count(_s)) if (defs.count(_s))
return defs.at(_s); return defs.at(_s);

View File

@ -40,7 +40,7 @@ struct CompilerState
{ {
CompilerState(); CompilerState();
CodeFragment const& getDef(std::string const& _s); CodeFragment const& getDef(std::string const& _s) const;
void populateStandard(); void populateStandard();
unsigned stackSize = 128; unsigned stackSize = 128;

View File

@ -119,7 +119,7 @@ private:
); );
std::string sourceLocationToString(SourceLocation const& _location) const; std::string sourceLocationToString(SourceLocation const& _location) const;
std::string namePathToString(std::vector<ASTString> const& _namePath) const; std::string namePathToString(std::vector<ASTString> const& _namePath) const;
Json::Value idOrNull(ASTNode const* _pt) static Json::Value idOrNull(ASTNode const* _pt)
{ {
return _pt ? Json::Value(nodeId(*_pt)) : Json::nullValue; return _pt ? Json::Value(nodeId(*_pt)) : Json::nullValue;
} }
@ -134,12 +134,12 @@ private:
std::string literalTokenKind(Token::Value _token); std::string literalTokenKind(Token::Value _token);
std::string type(Expression const& _expression); std::string type(Expression const& _expression);
std::string type(VariableDeclaration const& _varDecl); std::string type(VariableDeclaration const& _varDecl);
int nodeId(ASTNode const& _node) static int nodeId(ASTNode const& _node)
{ {
return _node.id(); return _node.id();
} }
template<class Container> template<class Container>
Json::Value getContainerIds(Container const& container) static Json::Value getContainerIds(Container const& container)
{ {
Json::Value tmp(Json::arrayValue); Json::Value tmp(Json::arrayValue);
for (auto const& element: container) for (auto const& element: container)

View File

@ -146,7 +146,7 @@ private:
std::string m_source; std::string m_source;
ASTNode const* m_ast; ASTNode const* m_ast;
GasEstimator::ASTGasConsumption m_gasCosts; GasEstimator::ASTGasConsumption m_gasCosts;
std::ostream* m_ostream; std::ostream* m_ostream = nullptr;
}; };
} }

View File

@ -162,7 +162,7 @@ private:
std::string createFunction(std::string const& _name, std::function<std::string()> const& _creator); std::string createFunction(std::string const& _name, std::function<std::string()> const& _creator);
/// @returns the size of the static part of the encoding of the given types. /// @returns the size of the static part of the encoding of the given types.
size_t headSize(TypePointers const& _targetTypes); static size_t headSize(TypePointers const& _targetTypes);
/// Map from function name to code for a multi-use function. /// Map from function name to code for a multi-use function.
std::map<std::string, std::string> m_requestedFunctions; std::map<std::string, std::string> m_requestedFunctions;

View File

@ -40,7 +40,7 @@ using TypePointer = std::shared_ptr<Type const>;
class ArrayUtils class ArrayUtils
{ {
public: public:
ArrayUtils(CompilerContext& _context): m_context(_context) {} explicit ArrayUtils(CompilerContext& _context): m_context(_context) {}
/// Copies an array to an array in storage. The arrays can be of different types only if /// Copies an array to an array in storage. The arrays can be of different types only if
/// their storage representation is the same. /// their storage representation is the same.

View File

@ -51,9 +51,9 @@ public:
ContractDefinition const& _contract, ContractDefinition const& _contract,
std::map<ContractDefinition const*, eth::Assembly const*> const& _contracts std::map<ContractDefinition const*, eth::Assembly const*> const& _contracts
); );
eth::Assembly const& assembly() { return m_context.assembly(); } eth::Assembly const& assembly() const { return m_context.assembly(); }
eth::LinkerObject assembledObject() { return m_context.assembledObject(); } eth::LinkerObject assembledObject() const { return m_context.assembledObject(); }
eth::LinkerObject runtimeObject() { return m_context.assembledRuntimeObject(m_runtimeSub); } eth::LinkerObject runtimeObject() const { return m_context.assembledRuntimeObject(m_runtimeSub); }
/// @arg _sourceCodes is the map of input files to source code strings /// @arg _sourceCodes is the map of input files to source code strings
/// @arg _inJsonFromat shows whether the out should be in Json format /// @arg _inJsonFromat shows whether the out should be in Json format
Json::Value streamAssembly(std::ostream& _stream, StringMap const& _sourceCodes = StringMap(), bool _inJsonFormat = false) const Json::Value streamAssembly(std::ostream& _stream, StringMap const& _sourceCodes = StringMap(), bool _inJsonFormat = false) const

View File

@ -208,8 +208,8 @@ public:
return m_asm->stream(_stream, "", _sourceCodes, _inJsonFormat); return m_asm->stream(_stream, "", _sourceCodes, _inJsonFormat);
} }
eth::LinkerObject const& assembledObject() { return m_asm->assemble(); } eth::LinkerObject const& assembledObject() const { return m_asm->assemble(); }
eth::LinkerObject const& assembledRuntimeObject(size_t _subIndex) { return m_asm->sub(_subIndex).assemble(); } eth::LinkerObject const& assembledRuntimeObject(size_t _subIndex) const { return m_asm->sub(_subIndex).assemble(); }
/** /**
* Helper class to pop the visited nodes stack when a scope closes * Helper class to pop the visited nodes stack when a scope closes

View File

@ -33,7 +33,7 @@ class Type; // forward
class CompilerUtils class CompilerUtils
{ {
public: public:
CompilerUtils(CompilerContext& _context): m_context(_context) {} explicit CompilerUtils(CompilerContext& _context): m_context(_context) {}
/// Stores the initial value of the free-memory-pointer at its position; /// Stores the initial value of the free-memory-pointer at its position;
void initialiseFreeMemoryPointer(); void initialiseFreeMemoryPointer();

View File

@ -45,7 +45,7 @@ using namespace dev::solidity;
class StackHeightChecker class StackHeightChecker
{ {
public: public:
StackHeightChecker(CompilerContext const& _context): explicit StackHeightChecker(CompilerContext const& _context):
m_context(_context), stackHeight(m_context.stackHeight()) {} m_context(_context), stackHeight(m_context.stackHeight()) {}
void check() { solAssert(m_context.stackHeight() == stackHeight, std::string("I sense a disturbance in the stack: ") + std::to_string(m_context.stackHeight()) + " vs " + std::to_string(stackHeight)); } void check() { solAssert(m_context.stackHeight() == stackHeight, std::string("I sense a disturbance in the stack: ") + std::to_string(m_context.stackHeight()) + " vs " + std::to_string(stackHeight)); }
private: private:

View File

@ -1811,7 +1811,7 @@ void ExpressionCompiler::setLValueToStorageItem(Expression const& _expression)
setLValue<StorageItem>(_expression, *_expression.annotation().type); setLValue<StorageItem>(_expression, *_expression.annotation().type);
} }
bool ExpressionCompiler::cleanupNeededForOp(Type::Category _type, Token::Value _op) bool ExpressionCompiler::cleanupNeededForOp(Type::Category _type, Token::Value _op) const
{ {
if (Token::isCompareOp(_op) || Token::isShiftOp(_op)) if (Token::isCompareOp(_op) || Token::isShiftOp(_op))
return true; return true;

View File

@ -119,7 +119,7 @@ private:
/// @returns true if the operator applied to the given type requires a cleanup prior to the /// @returns true if the operator applied to the given type requires a cleanup prior to the
/// operation. /// operation.
bool cleanupNeededForOp(Type::Category _type, Token::Value _op); bool cleanupNeededForOp(Type::Category _type, Token::Value _op) const;
/// @returns the CompilerUtils object containing the current context. /// @returns the CompilerUtils object containing the current context.
CompilerUtils utils(); CompilerUtils utils();

View File

@ -52,7 +52,7 @@ using namespace dev::solidity::assembly;
class EthAssemblyAdapter: public julia::AbstractAssembly class EthAssemblyAdapter: public julia::AbstractAssembly
{ {
public: public:
EthAssemblyAdapter(eth::Assembly& _assembly): explicit EthAssemblyAdapter(eth::Assembly& _assembly):
m_assembly(_assembly) m_assembly(_assembly)
{ {
} }
@ -127,7 +127,7 @@ public:
} }
private: private:
LabelID assemblyTagToIdentifier(eth::AssemblyItem const& _tag) const static LabelID assemblyTagToIdentifier(eth::AssemblyItem const& _tag)
{ {
u256 id = _tag.data(); u256 id = _tag.data();
solAssert(id <= std::numeric_limits<LabelID>::max(), "Tag id too large."); solAssert(id <= std::numeric_limits<LabelID>::max(), "Tag id too large.");

View File

@ -45,7 +45,7 @@ public:
protected: protected:
/// Creates an inline assembly node with the given source location. /// Creates an inline assembly node with the given source location.
template <class T> T createWithLocation(SourceLocation const& _loc = SourceLocation()) template <class T> T createWithLocation(SourceLocation const& _loc = SourceLocation()) const
{ {
T r; T r;
r.location = _loc; r.location = _loc;

View File

@ -209,7 +209,7 @@ string AsmPrinter::operator()(Block const& _block)
return "{\n " + body + "\n}"; return "{\n " + body + "\n}";
} }
string AsmPrinter::appendTypeName(std::string const& _type) string AsmPrinter::appendTypeName(std::string const& _type) const
{ {
if (m_julia) if (m_julia)
return ":" + _type; return ":" + _type;

View File

@ -53,7 +53,7 @@ public:
std::string operator()(assembly::Block const& _block); std::string operator()(assembly::Block const& _block);
private: private:
std::string appendTypeName(std::string const& _type); std::string appendTypeName(std::string const& _type) const;
bool m_julia = false; bool m_julia = false;
}; };

View File

@ -70,7 +70,7 @@ Scope::Identifier* Scope::lookup(string const& _name)
return nullptr; return nullptr;
} }
bool Scope::exists(string const& _name) bool Scope::exists(string const& _name) const
{ {
if (identifiers.count(_name)) if (identifiers.count(_name))
return true; return true;

View File

@ -107,7 +107,7 @@ struct Scope
} }
/// @returns true if the name exists in this scope or in super scopes (also searches /// @returns true if the name exists in this scope or in super scopes (also searches
/// across function and assembly boundaries). /// across function and assembly boundaries).
bool exists(std::string const& _name); bool exists(std::string const& _name) const;
/// @returns the number of variables directly registered inside the scope. /// @returns the number of variables directly registered inside the scope.
size_t numberOfVariables() const; size_t numberOfVariables() const;

View File

@ -88,7 +88,7 @@ public:
m_errorReporter(m_errorList) {} m_errorReporter(m_errorList) {}
/// @returns the list of errors that occured during parsing and type checking. /// @returns the list of errors that occured during parsing and type checking.
ErrorList const& errors() { return m_errorReporter.errors(); } ErrorList const& errors() const { return m_errorReporter.errors(); }
/// @returns the current state. /// @returns the current state.
State state() const { return m_stackState; } State state() const { return m_stackState; }

View File

@ -36,7 +36,7 @@ class ErrorReporter
{ {
public: public:
ErrorReporter(ErrorList& _errors): explicit ErrorReporter(ErrorList& _errors):
m_errorList(_errors) { } m_errorList(_errors) { }
ErrorReporter& operator=(ErrorReporter const& _errorReporter); ErrorReporter& operator=(ErrorReporter const& _errorReporter);

View File

@ -40,7 +40,7 @@ public:
/// Creates a new StandardCompiler. /// Creates a new StandardCompiler.
/// @param _readFile callback to used to read files for import statements. Must return /// @param _readFile callback to used to read files for import statements. Must return
/// and must not emit exceptions. /// and must not emit exceptions.
StandardCompiler(ReadFile::Callback const& _readFile = ReadFile::Callback()) explicit StandardCompiler(ReadFile::Callback const& _readFile = ReadFile::Callback())
: m_compilerStack(_readFile), m_readFile(_readFile) : m_compilerStack(_readFile), m_readFile(_readFile)
{ {
} }

View File

@ -40,7 +40,7 @@ namespace solidity
class Parser::ASTNodeFactory class Parser::ASTNodeFactory
{ {
public: public:
ASTNodeFactory(Parser const& _parser): explicit ASTNodeFactory(Parser const& _parser):
m_parser(_parser), m_location(_parser.position(), -1, _parser.sourceName()) {} m_parser(_parser), m_location(_parser.position(), -1, _parser.sourceName()) {}
ASTNodeFactory(Parser const& _parser, ASTPointer<ASTNode> const& _childNode): ASTNodeFactory(Parser const& _parser, ASTPointer<ASTNode> const& _childNode):
m_parser(_parser), m_location(_childNode->location()) {} m_parser(_parser), m_location(_childNode->location()) {}
@ -69,7 +69,7 @@ private:
class Parser::RecursionGuard class Parser::RecursionGuard
{ {
public: public:
RecursionGuard(Parser& _parser): explicit RecursionGuard(Parser& _parser):
m_parser(_parser) m_parser(_parser)
{ {
m_parser.increaseRecursionDepth(); m_parser.increaseRecursionDepth();

View File

@ -35,7 +35,7 @@ class Scanner;
class Parser: public ParserBase class Parser: public ParserBase
{ {
public: public:
Parser(ErrorReporter& _errorReporter): ParserBase(_errorReporter) {} explicit Parser(ErrorReporter& _errorReporter): ParserBase(_errorReporter) {}
ASTPointer<SourceUnit> parse(std::shared_ptr<Scanner> const& _scanner); ASTPointer<SourceUnit> parse(std::shared_ptr<Scanner> const& _scanner);

View File

@ -36,7 +36,7 @@ class Scanner;
class ParserBase class ParserBase
{ {
public: public:
ParserBase(ErrorReporter& errorReporter): m_errorReporter(errorReporter) {} explicit ParserBase(ErrorReporter& errorReporter): m_errorReporter(errorReporter) {}
std::shared_ptr<std::string const> const& sourceName() const; std::shared_ptr<std::string const> const& sourceName() const;

View File

@ -75,7 +75,7 @@ public:
int position() const { return m_position; } int position() const { return m_position; }
bool isPastEndOfInput(size_t _charsForward = 0) const { return (m_position + _charsForward) >= m_source.size(); } bool isPastEndOfInput(size_t _charsForward = 0) const { return (m_position + _charsForward) >= m_source.size(); }
char get(size_t _charsForward = 0) const { return m_source[m_position + _charsForward]; } char get(size_t _charsForward = 0) const { return m_source[m_position + _charsForward]; }
char advanceAndGet(size_t _chars=1); char advanceAndGet(size_t _chars = 1);
char rollback(size_t _amount); char rollback(size_t _amount);
void reset() { m_position = 0; } void reset() { m_position = 0; }
@ -118,11 +118,11 @@ public:
///@name Information about the current token ///@name Information about the current token
/// @returns the current token /// @returns the current token
Token::Value currentToken() Token::Value currentToken() const
{ {
return m_currentToken.token; return m_currentToken.token;
} }
ElementaryTypeNameToken currentElementaryTypeNameToken() ElementaryTypeNameToken currentElementaryTypeNameToken() const
{ {
unsigned firstSize; unsigned firstSize;
unsigned secondSize; unsigned secondSize;
@ -219,8 +219,8 @@ private:
bool scanEscape(); bool scanEscape();
/// Return the current source position. /// Return the current source position.
int sourcePos() { return m_source.position(); } int sourcePos() const { return m_source.position(); }
bool isSourcePastEndOfInput() { return m_source.isPastEndOfInput(); } bool isSourcePastEndOfInput() const { return m_source.isPastEndOfInput(); }
TokenDesc m_skippedComment; // desc for current skipped comment TokenDesc m_skippedComment; // desc for current skipped comment
TokenDesc m_nextSkippedComment; // desc for next skiped comment TokenDesc m_nextSkippedComment; // desc for next skiped comment

View File

@ -124,7 +124,7 @@ public:
std::string const& accountCreateIfNotExists(size_t _id); std::string const& accountCreateIfNotExists(size_t _id);
private: private:
RPCSession(std::string const& _path); explicit RPCSession(std::string const& _path);
inline std::string quote(std::string const& _arg) { return "\"" + _arg + "\""; } inline std::string quote(std::string const& _arg) { return "\"" + _arg + "\""; }
/// Parse std::string replacing keywords to values /// Parse std::string replacing keywords to values