summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Ferrell <josh@vector35.com>2024-12-04 15:05:08 -0500
committerJosh Ferrell <josh@vector35.com>2024-12-16 15:16:49 -0500
commit6d93e8319411fca2c0d67e7ab29d135f5348328c (patch)
treec5d61e2084eb251673006fc72cbe8346e0636931
parent8ea98cab89afb0c14073141f30203486d1333b07 (diff)
Update dependencies and fix compilation errors/warnings for g++14 and c++20
-rw-r--r--binaryninjaapi.h16
-rw-r--r--highlevelilinstruction.h2
-rw-r--r--lowlevelilinstruction.h2
-rw-r--r--mediumlevelilinstruction.h2
-rw-r--r--rapidjson/document.h86
-rw-r--r--vendor/dtl/ChangeLog12
-rw-r--r--vendor/dtl/README.md4
-rw-r--r--vendor/dtl/dtl/Diff.hpp21
-rw-r--r--vendor/dtl/dtl/variables.hpp3
m---------vendor/fmt0
10 files changed, 81 insertions, 67 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index e553aa48..d9843a8b 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -243,9 +243,9 @@ namespace BinaryNinja {
#endif
public:
- Ref<T>() : m_obj(nullptr) {}
+ Ref() : m_obj(nullptr) {}
- Ref<T>(T* obj) : m_obj(obj)
+ Ref(T* obj) : m_obj(obj)
{
if (m_obj)
{
@@ -256,7 +256,7 @@ namespace BinaryNinja {
}
}
- Ref<T>(const Ref<T>& obj) : m_obj(obj.m_obj)
+ Ref(const Ref<T>& obj) : m_obj(obj.m_obj)
{
if (m_obj)
{
@@ -267,7 +267,7 @@ namespace BinaryNinja {
}
}
- Ref<T>(Ref<T>&& other) : m_obj(other.m_obj)
+ Ref(Ref<T>&& other) : m_obj(other.m_obj)
{
other.m_obj = 0;
#ifdef BN_REF_COUNT_DEBUG
@@ -275,7 +275,7 @@ namespace BinaryNinja {
#endif
}
- ~Ref<T>()
+ ~Ref()
{
if (m_obj)
{
@@ -369,8 +369,8 @@ namespace BinaryNinja {
T* m_obj;
public:
- CallbackRef<T>(void* obj) : m_obj((T*)obj) { m_obj->AddRefForCallback(); }
- ~CallbackRef<T>() { m_obj->ReleaseForCallback(); }
+ CallbackRef(void* obj) : m_obj((T*)obj) { m_obj->AddRefForCallback(); }
+ ~CallbackRef() { m_obj->ReleaseForCallback(); }
operator T*() const { return m_obj; }
T* operator->() const { return m_obj; }
T& operator*() const { return *m_obj; }
@@ -19983,7 +19983,7 @@ struct fmt::formatter<T, char, std::enable_if_t<std::is_enum_v<T>, void>>
{
auto it = ctx.begin(), end = ctx.end();
if (it != end && (*it == 's' || *it == 'S' || *it == 'd' || *it == 'x')) presentation = *it++;
- if (it != end && *it != '}') detail::throw_format_error("invalid format");
+ if (it != end && *it != '}') report_error("invalid format");
return it;
}
};
diff --git a/highlevelilinstruction.h b/highlevelilinstruction.h
index 25c639ec..f962226e 100644
--- a/highlevelilinstruction.h
+++ b/highlevelilinstruction.h
@@ -1448,7 +1448,7 @@ template<> struct fmt::formatter<IL_INS_NS::HighLevelILInstruction>
auto it = ctx.begin(), end = ctx.end();
if (it != end && *it == '?')
presentation = *it++;
- if (it != end && *it != '}') detail::throw_format_error("invalid format");
+ if (it != end && *it != '}') report_error("invalid format");
return it;
}
};
diff --git a/lowlevelilinstruction.h b/lowlevelilinstruction.h
index dd416e90..b9a31798 100644
--- a/lowlevelilinstruction.h
+++ b/lowlevelilinstruction.h
@@ -2026,7 +2026,7 @@ template<> struct fmt::formatter<IL_INS_NS::LowLevelILInstruction>
auto it = ctx.begin(), end = ctx.end();
if (it != end && *it == '?')
presentation = *it++;
- if (it != end && *it != '}') detail::throw_format_error("invalid format");
+ if (it != end && *it != '}') report_error("invalid format");
return it;
}
};
diff --git a/mediumlevelilinstruction.h b/mediumlevelilinstruction.h
index b9745177..018f9ffc 100644
--- a/mediumlevelilinstruction.h
+++ b/mediumlevelilinstruction.h
@@ -1729,7 +1729,7 @@ template<> struct fmt::formatter<IL_INS_NS::MediumLevelILInstruction>
auto it = ctx.begin(), end = ctx.end();
if (it != end && *it == '?')
presentation = *it++;
- if (it != end && *it != '}') detail::throw_format_error("invalid format");
+ if (it != end && *it != '}') report_error("invalid format");
return it;
}
};
diff --git a/rapidjson/document.h b/rapidjson/document.h
index 549bfcdc..619029a2 100644
--- a/rapidjson/document.h
+++ b/rapidjson/document.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_DOCUMENT_H_
@@ -77,8 +77,8 @@ class GenericDocument;
But a compiler (IBM XL C/C++ for AIX) have reported to have problem with that so it moved as a namespace scope struct.
https://code.google.com/p/rapidjson/issues/detail?id=64
*/
-template <typename Encoding, typename Allocator>
-struct GenericMember {
+template <typename Encoding, typename Allocator>
+struct GenericMember {
GenericValue<Encoding, Allocator> name; //!< name of member (must be a string)
GenericValue<Encoding, Allocator> value; //!< value of member.
};
@@ -329,8 +329,6 @@ struct GenericStringRef {
GenericStringRef(const GenericStringRef& rhs) : s(rhs.s), length(rhs.length) {}
- GenericStringRef& operator=(const GenericStringRef& rhs) { s = rhs.s; length = rhs.length; }
-
//! implicit conversion to plain CharType pointer
operator const Ch *() const { return s; }
@@ -341,6 +339,8 @@ private:
//! Disallow construction from non-const array
template<SizeType N>
GenericStringRef(CharType (&str)[N]) /* = delete */;
+ //! Copy assignment operator not permitted - immutable type
+ GenericStringRef& operator=(const GenericStringRef& rhs) /* = delete */;
};
//! Mark a character pointer as constant string
@@ -423,7 +423,7 @@ namespace internal {
template <typename ValueType, typename T>
struct TypeHelper {};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, bool> {
static bool Is(const ValueType& v) { return v.IsBool(); }
static bool Get(const ValueType& v) { return v.GetBool(); }
@@ -431,7 +431,7 @@ struct TypeHelper<ValueType, bool> {
static ValueType& Set(ValueType& v, bool data, typename ValueType::AllocatorType&) { return v.SetBool(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, int> {
static bool Is(const ValueType& v) { return v.IsInt(); }
static int Get(const ValueType& v) { return v.GetInt(); }
@@ -439,7 +439,7 @@ struct TypeHelper<ValueType, int> {
static ValueType& Set(ValueType& v, int data, typename ValueType::AllocatorType&) { return v.SetInt(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, unsigned> {
static bool Is(const ValueType& v) { return v.IsUint(); }
static unsigned Get(const ValueType& v) { return v.GetUint(); }
@@ -447,7 +447,7 @@ struct TypeHelper<ValueType, unsigned> {
static ValueType& Set(ValueType& v, unsigned data, typename ValueType::AllocatorType&) { return v.SetUint(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, int64_t> {
static bool Is(const ValueType& v) { return v.IsInt64(); }
static int64_t Get(const ValueType& v) { return v.GetInt64(); }
@@ -455,7 +455,7 @@ struct TypeHelper<ValueType, int64_t> {
static ValueType& Set(ValueType& v, int64_t data, typename ValueType::AllocatorType&) { return v.SetInt64(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, uint64_t> {
static bool Is(const ValueType& v) { return v.IsUint64(); }
static uint64_t Get(const ValueType& v) { return v.GetUint64(); }
@@ -463,7 +463,7 @@ struct TypeHelper<ValueType, uint64_t> {
static ValueType& Set(ValueType& v, uint64_t data, typename ValueType::AllocatorType&) { return v.SetUint64(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, double> {
static bool Is(const ValueType& v) { return v.IsDouble(); }
static double Get(const ValueType& v) { return v.GetDouble(); }
@@ -471,7 +471,7 @@ struct TypeHelper<ValueType, double> {
static ValueType& Set(ValueType& v, double data, typename ValueType::AllocatorType&) { return v.SetDouble(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, float> {
static bool Is(const ValueType& v) { return v.IsFloat(); }
static float Get(const ValueType& v) { return v.GetFloat(); }
@@ -479,7 +479,7 @@ struct TypeHelper<ValueType, float> {
static ValueType& Set(ValueType& v, float data, typename ValueType::AllocatorType&) { return v.SetFloat(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, const typename ValueType::Ch*> {
typedef const typename ValueType::Ch* StringType;
static bool Is(const ValueType& v) { return v.IsString(); }
@@ -489,7 +489,7 @@ struct TypeHelper<ValueType, const typename ValueType::Ch*> {
};
#if RAPIDJSON_HAS_STDSTRING
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, std::basic_string<typename ValueType::Ch> > {
typedef std::basic_string<typename ValueType::Ch> StringType;
static bool Is(const ValueType& v) { return v.IsString(); }
@@ -498,7 +498,7 @@ struct TypeHelper<ValueType, std::basic_string<typename ValueType::Ch> > {
};
#endif
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::Array> {
typedef typename ValueType::Array ArrayType;
static bool Is(const ValueType& v) { return v.IsArray(); }
@@ -507,14 +507,14 @@ struct TypeHelper<ValueType, typename ValueType::Array> {
static ValueType& Set(ValueType& v, ArrayType data, typename ValueType::AllocatorType&) { return v = data; }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::ConstArray> {
typedef typename ValueType::ConstArray ArrayType;
static bool Is(const ValueType& v) { return v.IsArray(); }
static ArrayType Get(const ValueType& v) { return v.GetArray(); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::Object> {
typedef typename ValueType::Object ObjectType;
static bool Is(const ValueType& v) { return v.IsObject(); }
@@ -523,7 +523,7 @@ struct TypeHelper<ValueType, typename ValueType::Object> {
static ValueType& Set(ValueType& v, ObjectType data, typename ValueType::AllocatorType&) { v = data; }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::ConstObject> {
typedef typename ValueType::ConstObject ObjectType;
static bool Is(const ValueType& v) { return v.IsObject(); }
@@ -651,7 +651,7 @@ public:
//! Constructor for unsigned value.
explicit GenericValue(unsigned u) RAPIDJSON_NOEXCEPT : data_() {
- data_.n.u64 = u;
+ data_.n.u64 = u;
data_.f.flags = (u & 0x80000000) ? kNumberUintFlag : (kNumberUintFlag | kIntFlag | kInt64Flag);
}
@@ -870,14 +870,14 @@ public:
switch (GetType()) {
case kObjectType: // Warning: O(n^2) inner-loop
if (data_.o.size != rhs.data_.o.size)
- return false;
+ return false;
for (ConstMemberIterator lhsMemberItr = MemberBegin(); lhsMemberItr != MemberEnd(); ++lhsMemberItr) {
typename RhsType::ConstMemberIterator rhsMemberItr = rhs.FindMember(lhsMemberItr->name);
if (rhsMemberItr == rhs.MemberEnd() || lhsMemberItr->value != rhsMemberItr->value)
return false;
}
return true;
-
+
case kArrayType:
if (data_.a.size != rhs.data_.a.size)
return false;
@@ -1366,7 +1366,7 @@ public:
\note Linear time complexity.
*/
void RemoveAllMembers() {
- RAPIDJSON_ASSERT(IsObject());
+ RAPIDJSON_ASSERT(IsObject());
for (MemberIterator m = MemberBegin(); m != MemberEnd(); ++m)
m->~Member();
data_.o.size = 0;
@@ -1514,7 +1514,7 @@ public:
\note Linear time complexity.
*/
void Clear() {
- RAPIDJSON_ASSERT(IsArray());
+ RAPIDJSON_ASSERT(IsArray());
GenericValue* e = GetElementsPointer();
for (GenericValue* v = e; v != e + data_.a.size; ++v)
v->~GenericValue();
@@ -1670,7 +1670,7 @@ public:
RAPIDJSON_ASSERT(last <= End());
ValueIterator pos = Begin() + (first - Begin());
for (ValueIterator itr = pos; itr != last; ++itr)
- itr->~GenericValue();
+ itr->~GenericValue();
std::memmove(pos, last, static_cast<size_t>(End() - last) * sizeof(GenericValue));
data_.a.size -= static_cast<SizeType>(last - first);
return pos;
@@ -1729,7 +1729,7 @@ public:
//! Set this value as a string without copying source string.
/*! This version has better performance with supplied length, and also support string containing null character.
- \param s source string pointer.
+ \param s source string pointer.
\param length The length of source string, excluding the trailing null terminator.
\return The value itself for fluent API.
\post IsString() == true && GetString() == s && GetStringLength() == length
@@ -1746,7 +1746,7 @@ public:
//! Set this value as a string by copying from source string.
/*! This version has better performance with supplied length, and also support string containing null character.
- \param s source string.
+ \param s source string.
\param length The length of source string, excluding the trailing null terminator.
\param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
\return The value itself for fluent API.
@@ -1755,7 +1755,7 @@ public:
GenericValue& SetString(const Ch* s, SizeType length, Allocator& allocator) { this->~GenericValue(); SetStringRaw(StringRef(s, length), allocator); return *this; }
//! Set this value as a string by copying from source string.
- /*! \param s source string.
+ /*! \param s source string.
\param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
\return The value itself for fluent API.
\post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length
@@ -1832,10 +1832,10 @@ public:
if (RAPIDJSON_UNLIKELY(!v->Accept(handler)))
return false;
return handler.EndArray(data_.a.size);
-
+
case kStringType:
return handler.String(GetString(), GetStringLength(), (data_.f.flags & kCopyFlag) != 0);
-
+
default:
RAPIDJSON_ASSERT(GetType() == kNumberType);
if (IsDouble()) return handler.Double(data_.n.d);
@@ -2052,7 +2052,7 @@ private:
typedef GenericValue<UTF8<> > Value;
///////////////////////////////////////////////////////////////////////////////
-// GenericDocument
+// GenericDocument
//! A document for parsing JSON text as DOM.
/*!
@@ -2084,12 +2084,12 @@ public:
}
//! Constructor
- /*! Creates an empty document which type is Null.
+ /*! Creates an empty document which type is Null.
\param allocator Optional allocator for allocating memory.
\param stackCapacity Optional initial capacity of stack in bytes.
\param stackAllocator Optional allocator for allocating memory for stack.
*/
- GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) :
+ GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) :
allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_()
{
if (!allocator_)
@@ -2295,7 +2295,7 @@ public:
GenericDocument& Parse(const Ch* str, size_t length) {
return Parse<parseFlags, Encoding>(str, length);
}
-
+
GenericDocument& Parse(const Ch* str, size_t length) {
return Parse<kParseDefaultFlags>(str, length);
}
@@ -2315,7 +2315,7 @@ public:
GenericDocument& Parse(const std::basic_string<Ch>& str) {
return Parse<kParseDefaultFlags>(str);
}
-#endif // RAPIDJSON_HAS_STDSTRING
+#endif // RAPIDJSON_HAS_STDSTRING
//!@}
@@ -2380,16 +2380,16 @@ public:
bool Uint64(uint64_t i) { new (stack_.template Push<ValueType>()) ValueType(i); return true; }
bool Double(double d) { new (stack_.template Push<ValueType>()) ValueType(d); return true; }
- bool RawNumber(const Ch* str, SizeType length, bool copy) {
- if (copy)
+ bool RawNumber(const Ch* str, SizeType length, bool copy) {
+ if (copy)
new (stack_.template Push<ValueType>()) ValueType(str, length, GetAllocator());
else
new (stack_.template Push<ValueType>()) ValueType(str, length);
return true;
}
- bool String(const Ch* str, SizeType length, bool copy) {
- if (copy)
+ bool String(const Ch* str, SizeType length, bool copy) {
+ if (copy)
new (stack_.template Push<ValueType>()) ValueType(str, length, GetAllocator());
else
new (stack_.template Push<ValueType>()) ValueType(str, length);
@@ -2397,7 +2397,7 @@ public:
}
bool StartObject() { new (stack_.template Push<ValueType>()) ValueType(kObjectType); return true; }
-
+
bool Key(const Ch* str, SizeType length, bool copy) { return String(str, length, copy); }
bool EndObject(SizeType memberCount) {
@@ -2407,7 +2407,7 @@ public:
}
bool StartArray() { new (stack_.template Push<ValueType>()) ValueType(kArrayType); return true; }
-
+
bool EndArray(SizeType elementCount) {
ValueType* elements = stack_.template Pop<ValueType>(elementCount);
stack_.template Top<ValueType>()->SetArrayRaw(elements, elementCount, GetAllocator());
diff --git a/vendor/dtl/ChangeLog b/vendor/dtl/ChangeLog
index e2f22dbe..3bf2e859 100644
--- a/vendor/dtl/ChangeLog
+++ b/vendor/dtl/ChangeLog
@@ -1,3 +1,15 @@
+2024-07-11 Tatsuhiko Kubo <cubicdaiya@gmail.com>
+
+ * bugfix: fix compilation error in C++14 (#18). Thanks to @ZaychukAleksey
+
+ * 1.21 released
+
+2022-04-11 Tatsuhiko Kubo <cubicdaiya@gmail.com>
+
+ * bugfix: fixed invalid offset in unified format difference when difference is too large.
+
+ * 1.20 released
+
2015-05-03 Tatsuhiko Kubo <cubicdaiya@gmail.com>
* added some minor changes.
diff --git a/vendor/dtl/README.md b/vendor/dtl/README.md
index 6af7bf30..4a8ee208 100644
--- a/vendor/dtl/README.md
+++ b/vendor/dtl/README.md
@@ -1,7 +1,5 @@
# dtl
-[![Build Status](https://travis-ci.org/cubicdaiya/dtl.png?branch=master)](https://travis-ci.org/cubicdaiya/dtl)
-
`dtl` is the diff template library written in C++. The name of template is derived C++'s Template.
# Table of contents
@@ -253,7 +251,7 @@ dtl::Diff<elem, sequence> d(A, B);
d.compose();
d.composeUnifiedHunks()
string s1(A);
-string s2 = d.UniPatch(s1);
+string s2 = d.uniPatch(s1);
```
When the above code is run, s2 becomes "abd".
diff --git a/vendor/dtl/dtl/Diff.hpp b/vendor/dtl/dtl/Diff.hpp
index cff05fef..57067f9f 100644
--- a/vendor/dtl/dtl/Diff.hpp
+++ b/vendor/dtl/dtl/Diff.hpp
@@ -67,6 +67,8 @@ namespace dtl {
bool editDistanceOnly;
uniHunkVec uniHunks;
comparator cmp;
+ long long ox;
+ long long oy;
public :
Diff () {}
@@ -162,7 +164,7 @@ namespace dtl {
return trivial;
}
- void enableTrivial () const {
+ void enableTrivial () {
this->trivial = true;
}
@@ -260,7 +262,8 @@ namespace dtl {
if (isHuge()) {
pathCordinates.reserve(MAX_CORDINATES_SIZE);
}
-
+ ox = 0;
+ oy = 0;
long long p = -1;
fp = new long long[M + N + 3];
fill(&fp[0], &fp[M + N + 3], -1);
@@ -595,18 +598,18 @@ namespace dtl {
while(px_idx < v[i].x || py_idx < v[i].y) {
if (v[i].y - v[i].x > py_idx - px_idx) {
if (!wasSwapped()) {
- ses.addSequence(*y, 0, y_idx, SES_ADD);
+ ses.addSequence(*y, 0, y_idx + oy, SES_ADD);
} else {
- ses.addSequence(*y, y_idx, 0, SES_DELETE);
+ ses.addSequence(*y, y_idx + oy, 0, SES_DELETE);
}
++y;
++y_idx;
++py_idx;
} else if (v[i].y - v[i].x < py_idx - px_idx) {
if (!wasSwapped()) {
- ses.addSequence(*x, x_idx, 0, SES_DELETE);
+ ses.addSequence(*x, x_idx + ox, 0, SES_DELETE);
} else {
- ses.addSequence(*x, 0, x_idx, SES_ADD);
+ ses.addSequence(*x, 0, x_idx + ox, SES_ADD);
}
++x;
++x_idx;
@@ -614,10 +617,10 @@ namespace dtl {
} else {
if (!wasSwapped()) {
lcs.addSequence(*x);
- ses.addSequence(*x, x_idx, y_idx, SES_COMMON);
+ ses.addSequence(*x, x_idx + ox, y_idx + oy, SES_COMMON);
} else {
lcs.addSequence(*y);
- ses.addSequence(*y, y_idx, x_idx, SES_COMMON);
+ ses.addSequence(*y, y_idx + oy, x_idx + ox, SES_COMMON);
}
++x;
++y;
@@ -658,6 +661,8 @@ namespace dtl {
fp = new long long[M + N + 3];
fill(&fp[0], &fp[M + N + 3], -1);
fill(path.begin(), path.end(), -1);
+ ox = x_idx - 1;
+ oy = y_idx - 1;
return false;
}
return true;
diff --git a/vendor/dtl/dtl/variables.hpp b/vendor/dtl/dtl/variables.hpp
index 5991eff6..73cab244 100644
--- a/vendor/dtl/dtl/variables.hpp
+++ b/vendor/dtl/dtl/variables.hpp
@@ -44,7 +44,6 @@
#include <algorithm>
#include <iostream>
-
#ifdef BINARYNINJACORE_LIBRARY
#include "binaryninjacore_global.h"
#endif
@@ -75,7 +74,7 @@ namespace dtl {
/**
* version string
*/
- const string version = "1.19";
+ const string version = "1.21";
/**
* type of edit for SES
diff --git a/vendor/fmt b/vendor/fmt
-Subproject f5e54359df4c26b6230fc61d38aa29458139308
+Subproject 0c9fce2ffefecfdce794e1859584e25877b7b59