From 9a6df02683ea70949a98cbfc0093969a790012b0 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Thu, 7 Aug 2014 08:31:34 -0700 Subject: [PATCH] fix(util/name): avoid assertion violation when reading numeric names Signed-off-by: Leonardo de Moura --- src/util/name.cpp | 2 +- src/util/name.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/util/name.cpp b/src/util/name.cpp index c291c3c34..b75a01002 100644 --- a/src/util/name.cpp +++ b/src/util/name.cpp @@ -440,7 +440,7 @@ public: switch (k) { case LL_ANON: return name(); case LL_STRING: return name(d.read_string().c_str()); - case LL_INT: return name(name(), d.read_unsigned()); + case LL_INT: return name(name(), d.read_unsigned(), true); case LL_STRING_PREFIX: { name prefix = read(); return name(prefix, d.read_string().c_str()); diff --git a/src/util/name.h b/src/util/name.h index 4112139ec..3fec74209 100644 --- a/src/util/name.h +++ b/src/util/name.h @@ -26,6 +26,7 @@ public: struct imp; private: friend int cmp(imp * i1, imp * i2); + friend class name_deserializer; imp * m_ptr; explicit name(imp * p); explicit name(unsigned k);