From 80fd30563c341d6db778f407547707396ff97c75 Mon Sep 17 00:00:00 2001 From: Shantonu Sen Date: Wed, 9 Feb 2011 21:03:19 +0000 Subject: [PATCH] Fix comparator used for looking up previously instantiated EDDisassemblers. Now, Syntax is only used as a tie-breaker if the Arch matches. Previously, a request for x86_64 disassembler followed by the i386 disassembler in a single process would return the cached x86_64 disassembler. Fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125215 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MCDisassembler/EDDisassembler.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/MC/MCDisassembler/EDDisassembler.h b/lib/MC/MCDisassembler/EDDisassembler.h index fdbe7ad24c1..71e45f0b042 100644 --- a/lib/MC/MCDisassembler/EDDisassembler.h +++ b/lib/MC/MCDisassembler/EDDisassembler.h @@ -89,8 +89,10 @@ struct EDDisassembler { bool operator<(const CPUKey &key) const { if(Arch > key.Arch) return false; - if(Syntax >= key.Syntax) - return false; + else if (Arch == key.Arch) { + if(Syntax > key.Syntax) + return false; + } return true; } };