| Index: src/assembler.cpp
|
| diff --git a/src/assembler.cpp b/src/assembler.cpp
|
| index 6f2ec8118c92545f98bdbdefc21853828eb820d6..6099d71528e57f2de840c178a5b3e757bc4b0fd2 100644
|
| --- a/src/assembler.cpp
|
| +++ b/src/assembler.cpp
|
| @@ -74,10 +74,16 @@ AssemblerBuffer::AssemblerBuffer(Assembler &assembler) : assembler_(assembler) {
|
|
|
| AssemblerBuffer::~AssemblerBuffer() {}
|
|
|
| -AssemblerFixup *AssemblerBuffer::GetLatestFixup() const {
|
| - if (fixups_.empty())
|
| - return NULL;
|
| - return fixups_.back();
|
| +// Returns the latest fixup at or after the given position, or NULL if
|
| +// there is none. Assumes fixups were added in increasing order.
|
| +AssemblerFixup *AssemblerBuffer::GetLatestFixup(intptr_t position) const {
|
| + AssemblerFixup *latest_fixup = NULL;
|
| + for (auto I = fixups_.rbegin(), E = fixups_.rend(); I != E; ++I) {
|
| + if ((*I)->position() < position)
|
| + return latest_fixup;
|
| + latest_fixup = *I;
|
| + }
|
| + return latest_fixup;
|
| }
|
|
|
| void AssemblerBuffer::ProcessFixups(const MemoryRegion ®ion) {
|
|
|