Browse Source

Stack compiler now correctly returns a string and not a pointer

cl-refactor
Lefteris Karapetsas 10 years ago
parent
commit
78938ac468
  1. 8
      libsolidity/CompilerStack.cpp
  2. 2
      libsolidity/CompilerStack.h
  3. 2
      test/solidityJSONInterfaceTest.cpp
  4. 4
      test/solidityNatspecJSON.cpp

8
libsolidity/CompilerStack.cpp

@ -84,7 +84,7 @@ void CompilerStack::streamAssembly(ostream& _outStream)
m_compiler->streamAssembly(_outStream); m_compiler->streamAssembly(_outStream);
} }
std::string const* CompilerStack::getJsonDocumentation(enum DocumentationType _type) std::string const& CompilerStack::getJsonDocumentation(enum DocumentationType _type)
{ {
if (!m_parseSuccessful) if (!m_parseSuccessful)
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Parsing was not successful.")); BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Parsing was not successful."));
@ -99,13 +99,13 @@ std::string const* CompilerStack::getJsonDocumentation(enum DocumentationType _t
{ {
case NATSPEC_USER: case NATSPEC_USER:
createDocIfNotThere(m_userDocumentation); createDocIfNotThere(m_userDocumentation);
return m_userDocumentation.get(); return *m_userDocumentation;
case NATSPEC_DEV: case NATSPEC_DEV:
createDocIfNotThere(m_devDocumentation); createDocIfNotThere(m_devDocumentation);
return m_devDocumentation.get(); return *m_devDocumentation;
case ABI_INTERFACE: case ABI_INTERFACE:
createDocIfNotThere(m_interface); createDocIfNotThere(m_interface);
return m_interface.get(); return *m_interface;
} }
BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Illegal documentation type.")); BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Illegal documentation type."));

2
libsolidity/CompilerStack.h

@ -74,7 +74,7 @@ public:
/// Prerequisite: Successful call to parse or compile. /// Prerequisite: Successful call to parse or compile.
/// @param type The type of the documentation to get. /// @param type The type of the documentation to get.
/// Can be one of 3 types defined at @c documentation_type /// Can be one of 3 types defined at @c documentation_type
std::string const* getJsonDocumentation(enum DocumentationType type); std::string const& getJsonDocumentation(enum DocumentationType type);
/// Returns the previously used scanner, useful for counting lines during error reporting. /// Returns the previously used scanner, useful for counting lines during error reporting.
Scanner const& getScanner() const { return *m_scanner; } Scanner const& getScanner() const { return *m_scanner; }

2
test/solidityJSONInterfaceTest.cpp

@ -50,7 +50,7 @@ public:
msg += *extra; msg += *extra;
BOOST_FAIL(msg); BOOST_FAIL(msg);
} }
std::string generatedInterfaceString = *m_compilerStack.getJsonDocumentation(ABI_INTERFACE); std::string generatedInterfaceString = m_compilerStack.getJsonDocumentation(ABI_INTERFACE);
Json::Value generatedInterface; Json::Value generatedInterface;
m_reader.parse(generatedInterfaceString, generatedInterface); m_reader.parse(generatedInterfaceString, generatedInterface);
Json::Value expectedInterface; Json::Value expectedInterface;

4
test/solidityNatspecJSON.cpp

@ -55,9 +55,9 @@ public:
} }
if (_userDocumentation) if (_userDocumentation)
generatedDocumentationString = *m_compilerStack.getJsonDocumentation(NATSPEC_USER); generatedDocumentationString = m_compilerStack.getJsonDocumentation(NATSPEC_USER);
else else
generatedDocumentationString = *m_compilerStack.getJsonDocumentation(NATSPEC_DEV); generatedDocumentationString = m_compilerStack.getJsonDocumentation(NATSPEC_DEV);
Json::Value generatedDocumentation; Json::Value generatedDocumentation;
m_reader.parse(generatedDocumentationString, generatedDocumentation); m_reader.parse(generatedDocumentationString, generatedDocumentation);
Json::Value expectedDocumentation; Json::Value expectedDocumentation;

Loading…
Cancel
Save