@ -2511,11 +2511,10 @@ void Parser::HandleDiagnostics(ParserResult* res)
}
}
}
}
ParserResult * Parser : : ParseHeader ( const std : : string & File )
ParserResult * Parser : : ParseHeader ( const std : : string & File , ParserResult * res )
{
{
assert ( Opts - > ASTContext & & " Expected a valid ASTContext " ) ;
assert ( Opts - > ASTContext & & " Expected a valid ASTContext " ) ;
auto res = new ParserResult ( ) ;
res - > ASTContext = Lib ;
res - > ASTContext = Lib ;
if ( File . empty ( ) )
if ( File . empty ( ) )
@ -2677,11 +2676,8 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File,
return ParserResultKind : : Success ;
return ParserResultKind : : Success ;
}
}
ParserResult * Parser : : ParseLibrary ( const std : : string & File )
ParserResult * Parser : : ParseLibrary ( const std : : string & File , ParserResult * res )
{
{
auto res = new ParserResult ( ) ;
res - > ASTContext = Lib ;
if ( File . empty ( ) )
if ( File . empty ( ) )
{
{
res - > Kind = ParserResultKind : : FileNotFound ;
res - > Kind = ParserResultKind : : FileNotFound ;
@ -2730,8 +2726,9 @@ ParserResult* ClangParser::ParseHeader(ParserOptions* Opts)
if ( ! Opts )
if ( ! Opts )
return nullptr ;
return nullptr ;
Parser parser ( Opts ) ;
auto res = new ParserResult ( ) ;
return parser . ParseHeader ( Opts - > FileName ) ;
res - > Parser = new Parser ( Opts ) ;
return res - > Parser - > ParseHeader ( Opts - > FileName , res ) ;
}
}
ParserResult * ClangParser : : ParseLibrary ( ParserOptions * Opts )
ParserResult * ClangParser : : ParseLibrary ( ParserOptions * Opts )
@ -2739,8 +2736,9 @@ ParserResult* ClangParser::ParseLibrary(ParserOptions* Opts)
if ( ! Opts )
if ( ! Opts )
return nullptr ;
return nullptr ;
Parser parser ( Opts ) ;
auto res = new ParserResult ( ) ;
return parser . ParseLibrary ( Opts - > FileName ) ;
res - > Parser = new Parser ( Opts ) ;
return res - > Parser - > ParseLibrary ( Opts - > FileName , res ) ;
}
}
ParserTargetInfo * ClangParser : : GetTargetInfo ( ParserOptions * Opts )
ParserTargetInfo * ClangParser : : GetTargetInfo ( ParserOptions * Opts )