From 5297a2dc4b2f22c07b9bfd5aef6190efd51de0bb Mon Sep 17 00:00:00 2001
From: 雾聪 <wucong.lyb@alibaba-inc.com>
Date: 星期四, 16 十一月 2023 11:12:45 +0800
Subject: [PATCH] Merge branch 'main' of https://github.com/alibaba-damo-academy/FunASR into main
---
runtime/onnxruntime/third_party/glog/src/demangle.cc | 68 +---------------------------------
1 files changed, 2 insertions(+), 66 deletions(-)
diff --git a/runtime/onnxruntime/third_party/glog/src/demangle.cc b/runtime/onnxruntime/third_party/glog/src/demangle.cc
index 74dff70..b19d446 100644
--- a/runtime/onnxruntime/third_party/glog/src/demangle.cc
+++ b/runtime/onnxruntime/third_party/glog/src/demangle.cc
@@ -36,9 +36,7 @@
#include "demangle.h"
-#include <cstddef>
#include <cstdio> // for nullptr
-#include <limits>
#include "utilities.h"
@@ -111,9 +109,6 @@
short nest_level; // For nested names.
bool append; // Append flag.
bool overflowed; // True if output gets overflowed.
- uint32 local_level;
- uint32 expr_level;
- uint32 arg_level;
};
// We don't use strlen() in libc since it's not guaranteed to be async
@@ -158,9 +153,6 @@
state->nest_level = -1;
state->append = true;
state->overflowed = false;
- state->local_level = 0;
- state->expr_level = 0;
- state->arg_level = 0;
}
// Returns true and advances "mangled_cur" if we find "one_char_token"
@@ -229,10 +221,6 @@
// is set to true for later use. The output string is ensured to
// always terminate with '\0' as long as there is no overflow.
static void Append(State *state, const char * const str, ssize_t length) {
- if (state->out_cur == nullptr) {
- state->overflowed = true;
- return;
- }
for (ssize_t i = 0; i < length; ++i) {
if (state->out_cur + 1 < state->out_end) { // +1 for '\0'
*state->out_cur = str[i];
@@ -306,7 +294,7 @@
}
}
-// A convenient wrapper around MaybeAppendWithLength().
+// A convenient wrapper arount MaybeAppendWithLength().
static bool MaybeAppend(State *state, const char * const str) {
if (state->append) {
size_t length = StrLen(str);
@@ -604,23 +592,9 @@
}
const char *p = state->mangled_cur;
int number = 0;
- constexpr int int_max_by_10 = std::numeric_limits<int>::max() / 10;
for (;*p != '\0'; ++p) {
if (IsDigit(*p)) {
- // Prevent signed integer overflow when multiplying
- if (number > int_max_by_10) {
- return false;
- }
-
- const int digit = *p - '0';
- const int shifted = number * 10;
-
- // Prevent signed integer overflow when summing
- if (digit > std::numeric_limits<int>::max() - shifted) {
- return false;
- }
-
- number = shifted + digit;
+ number = number * 10 + (*p - '0');
} else {
break;
}
@@ -677,10 +651,6 @@
MaybeAppend(state, "(anonymous namespace)");
} else {
MaybeAppendWithLength(state, state->mangled_cur, length);
- }
- if (length < 0 ||
- static_cast<std::size_t>(length) > StrLen(state->mangled_cur)) {
- return false;
}
state->mangled_cur += length;
return true;
@@ -1097,33 +1067,22 @@
// ::= J <template-arg>* E # argument pack
// ::= X <expression> E
static bool ParseTemplateArg(State *state) {
- // Avoid recursion above max_levels
- constexpr uint32 max_levels = 5;
-
- if (state->arg_level > max_levels) {
- return false;
- }
- ++state->arg_level;
-
State copy = *state;
if ((ParseOneCharToken(state, 'I') || ParseOneCharToken(state, 'J')) &&
ZeroOrMore(ParseTemplateArg, state) &&
ParseOneCharToken(state, 'E')) {
- --state->arg_level;
return true;
}
*state = copy;
if (ParseType(state) ||
ParseExprPrimary(state)) {
- --state->arg_level;
return true;
}
*state = copy;
if (ParseOneCharToken(state, 'X') && ParseExpression(state) &&
ParseOneCharToken(state, 'E')) {
- --state->arg_level;
return true;
}
*state = copy;
@@ -1144,20 +1103,11 @@
return true;
}
- // Avoid recursion above max_levels
- constexpr uint32 max_levels = 5;
-
- if (state->expr_level > max_levels) {
- return false;
- }
- ++state->expr_level;
-
State copy = *state;
if (ParseOperatorName(state) &&
ParseExpression(state) &&
ParseExpression(state) &&
ParseExpression(state)) {
- --state->expr_level;
return true;
}
*state = copy;
@@ -1165,35 +1115,30 @@
if (ParseOperatorName(state) &&
ParseExpression(state) &&
ParseExpression(state)) {
- --state->expr_level;
return true;
}
*state = copy;
if (ParseOperatorName(state) &&
ParseExpression(state)) {
- --state->expr_level;
return true;
}
*state = copy;
if (ParseTwoCharToken(state, "st") && ParseType(state)) {
return true;
- --state->expr_level;
}
*state = copy;
if (ParseTwoCharToken(state, "sr") && ParseType(state) &&
ParseUnqualifiedName(state) &&
ParseTemplateArgs(state)) {
- --state->expr_level;
return true;
}
*state = copy;
if (ParseTwoCharToken(state, "sr") && ParseType(state) &&
ParseUnqualifiedName(state)) {
- --state->expr_level;
return true;
}
*state = copy;
@@ -1239,25 +1184,16 @@
// [<discriminator>]
// := Z <(function) encoding> E s [<discriminator>]
static bool ParseLocalName(State *state) {
- // Avoid recursion above max_levels
- constexpr uint32 max_levels = 5;
- if (state->local_level > max_levels) {
- return false;
- }
- ++state->local_level;
-
State copy = *state;
if (ParseOneCharToken(state, 'Z') && ParseEncoding(state) &&
ParseOneCharToken(state, 'E') && MaybeAppend(state, "::") &&
ParseName(state) && Optional(ParseDiscriminator(state))) {
- --state->local_level;
return true;
}
*state = copy;
if (ParseOneCharToken(state, 'Z') && ParseEncoding(state) &&
ParseTwoCharToken(state, "Es") && Optional(ParseDiscriminator(state))) {
- --state->local_level;
return true;
}
*state = copy;
--
Gitblit v1.9.1