Replace unique_ptr with a raw pointer.

Fixes Android Lollipop (and older) build failures.

Change-Id: I30481a59562854b9891a2ac82ac2e7aab8ff570c
Reviewed-on: https://swiftshader-review.googlesource.com/9709
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Corentin Wallez <cwallez@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/compiler/preprocessor/MacroExpander.cpp b/src/OpenGL/compiler/preprocessor/MacroExpander.cpp
index 31c14e4..d71562a 100644
--- a/src/OpenGL/compiler/preprocessor/MacroExpander.cpp
+++ b/src/OpenGL/compiler/preprocessor/MacroExpander.cpp
@@ -60,6 +60,7 @@
                              bool parseDefined) :
 	mLexer(lexer), mMacroSet(macroSet), mDiagnostics(diagnostics), mParseDefined(parseDefined)
 {
+	mReserveToken = nullptr;
 }
 
 MacroExpander::~MacroExpander()
@@ -68,6 +69,8 @@
 	{
 		delete mContextStack[i];
 	}
+
+	delete mReserveToken;
 }
 
 void MacroExpander::lex(Token* token)
@@ -147,10 +150,10 @@
 
 void MacroExpander::getToken(Token* token)
 {
-	if (mReserveToken.get())
+	if (mReserveToken)
 	{
 		*token = *mReserveToken;
-		mReserveToken.reset();
+		delete mReserveToken;
 		return;
 	}
 
@@ -180,8 +183,8 @@
 	}
 	else
 	{
-		assert(!mReserveToken.get());
-		mReserveToken.reset(new Token(token));
+		assert(!mReserveToken);
+		mReserveToken = new Token(token);
 	}
 }
 
diff --git a/src/OpenGL/compiler/preprocessor/MacroExpander.h b/src/OpenGL/compiler/preprocessor/MacroExpander.h
index 92d275d..c8c3920 100644
--- a/src/OpenGL/compiler/preprocessor/MacroExpander.h
+++ b/src/OpenGL/compiler/preprocessor/MacroExpander.h
@@ -75,7 +75,7 @@
 	Diagnostics* mDiagnostics;
 	const bool mParseDefined;
 
-	std::unique_ptr<Token> mReserveToken;
+	Token* mReserveToken;
 	std::vector<MacroContext*> mContextStack;
 };