-Scanner::Scanner(std::unique_ptr<MemoryBuffer> Buffer, SourceMgr &SM_)
- : SM(SM_), InputBuffer(Buffer.get()),
- Current(InputBuffer->getBufferStart()), End(InputBuffer->getBufferEnd()),
- Indent(-1), Column(0), Line(0), FlowLevel(0), IsStartOfStream(true),
- IsSimpleKeyAllowed(true), Failed(false) {
- SM.AddNewSourceBuffer(Buffer.release(), SMLoc());
+void Scanner::init(MemoryBufferRef Buffer) {
+ InputBuffer = Buffer;
+ Current = InputBuffer.getBufferStart();
+ End = InputBuffer.getBufferEnd();
+ Indent = -1;
+ Column = 0;
+ Line = 0;
+ FlowLevel = 0;
+ IsStartOfStream = true;
+ IsSimpleKeyAllowed = true;
+ Failed = false;
+ std::unique_ptr<MemoryBuffer> InputBufferOwner =
+ MemoryBuffer::getMemBuffer(Buffer);
+ SM.AddNewSourceBuffer(std::move(InputBufferOwner), SMLoc());