Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2688)

Unified Diff: base/i18n/build_utf8_validator_tables.cc

Issue 1542323002: Switch to standard integer types in base/i18n/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: header Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/i18n/break_iterator_unittest.cc ('k') | base/i18n/case_conversion.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/i18n/build_utf8_validator_tables.cc
diff --git a/base/i18n/build_utf8_validator_tables.cc b/base/i18n/build_utf8_validator_tables.cc
index ae5b1a71e9df2ad961d4f56dcf12f4ef49f73af9..0cdcc3519ac681ad30edb276a25ce4d1c9dab1fc 100644
--- a/base/i18n/build_utf8_validator_tables.cc
+++ b/base/i18n/build_utf8_validator_tables.cc
@@ -23,9 +23,11 @@
// Because the table is not expected to ever change, it is checked into the
// repository rather than being regenerated at build time.
//
-// This code uses type uint8 throughout to represent bytes, to avoid
+// This code uses type uint8_t throughout to represent bytes, to avoid
// signed/unsigned char confusion.
+#include <stddef.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -35,11 +37,11 @@
#include <string>
#include <vector>
-#include "base/basictypes.h"
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/logging.h"
+#include "base/macros.h"
#include "base/numerics/safe_conversions.h"
#include "base/strings/stringprintf.h"
#include "third_party/icu/source/common/unicode/utf8.h"
@@ -63,7 +65,7 @@ const char kProlog[] =
"namespace base {\n"
"namespace internal {\n"
"\n"
- "const uint8 kUtf8ValidatorTables[] = {\n";
+ "const uint8_t kUtf8ValidatorTables[] = {\n";
const char kEpilog[] =
"};\n"
@@ -77,7 +79,7 @@ const char kEpilog[] =
class Range {
public:
// Ranges always start with just one byte.
- explicit Range(uint8 value) : from_(value), to_(value) {}
+ explicit Range(uint8_t value) : from_(value), to_(value) {}
// Range objects are copyable and assignable to be used in STL
// containers. Since they only contain non-pointer POD types, the default copy
@@ -85,13 +87,13 @@ class Range {
// Add a byte to the range. We intentionally only support adding a byte at the
// end, since that is the only operation the code needs.
- void AddByte(uint8 to) {
+ void AddByte(uint8_t to) {
CHECK(to == to_ + 1);
to_ = to;
}
- uint8 from() const { return from_; }
- uint8 to() const { return to_; }
+ uint8_t from() const { return from_; }
+ uint8_t to() const { return to_; }
bool operator<(const Range& rhs) const {
return (from() < rhs.from() || (from() == rhs.from() && to() < rhs.to()));
@@ -102,8 +104,8 @@ class Range {
}
private:
- uint8 from_;
- uint8 to_;
+ uint8_t from_;
+ uint8_t to_;
};
// A vector of Ranges is like a simple regular expression--it corresponds to
@@ -112,7 +114,7 @@ class Range {
typedef std::vector<Range> StringSet;
// A UTF-8 "character" is represented by a sequence of bytes.
-typedef std::vector<uint8> Character;
+typedef std::vector<uint8_t> Character;
// In the second stage of the algorithm, we want to convert a large list of
// Characters into a small list of StringSets.
@@ -129,7 +131,7 @@ class TablePrinter {
explicit TablePrinter(FILE* stream)
: stream_(stream), values_on_this_line_(0), current_offset_(0) {}
- void PrintValue(uint8 value) {
+ void PrintValue(uint8_t value) {
if (values_on_this_line_ == 0) {
fputs(" ", stream_);
} else if (values_on_this_line_ == kMaxValuesPerLine) {
@@ -175,7 +177,7 @@ PairVector InitializeCharacters() {
// explicitly permitted.
continue;
}
- uint8 bytes[4];
+ uint8_t bytes[4];
unsigned int offset = 0;
UBool is_error = false;
U8_APPEND(bytes, offset, arraysize(bytes), i, is_error);
@@ -281,8 +283,8 @@ void LogStringSets(const PairVector& pairs) {
// byte and the next entry in the vector (or 0xFF) result in a transition to the
// target state.
struct StateRange {
- uint8 from;
- uint8 target_state;
+ uint8_t from;
+ uint8_t target_state;
};
typedef std::vector<StateRange> State;
@@ -297,30 +299,31 @@ State GenerateInvalidState() {
// A map from a state (ie. a set of strings which will match from this state) to
// a number (which is an index into the array of states).
-typedef std::map<StringSet, uint8> StateMap;
+typedef std::map<StringSet, uint8_t> StateMap;
// Create a new state corresponding to |set|, add it |states| and |state_map|
// and return the index it was given in |states|.
-uint8 MakeState(const StringSet& set,
- std::vector<State>* states,
- StateMap* state_map) {
+uint8_t MakeState(const StringSet& set,
+ std::vector<State>* states,
+ StateMap* state_map) {
DCHECK(!set.empty());
const Range& range = set.front();
const StringSet rest(set.begin() + 1, set.end());
const StateMap::const_iterator where = state_map->find(rest);
- const uint8 target_state = where == state_map->end()
- ? MakeState(rest, states, state_map)
- : where->second;
+ const uint8_t target_state = where == state_map->end()
+ ? MakeState(rest, states, state_map)
+ : where->second;
DCHECK_LT(0, range.from());
DCHECK_LT(range.to(), 0xFF);
const StateRange new_state_initializer[] = {
- {0, 1}, {range.from(), target_state},
- {static_cast<uint8>(range.to() + 1), 1}};
+ {0, 1},
+ {range.from(), target_state},
+ {static_cast<uint8_t>(range.to() + 1), 1}};
states->push_back(
State(new_state_initializer,
new_state_initializer + arraysize(new_state_initializer)));
- const uint8 new_state_number =
- base::checked_cast<uint8>(states->size() - 1);
+ const uint8_t new_state_number =
+ base::checked_cast<uint8_t>(states->size() - 1);
CHECK(state_map->insert(std::make_pair(set, new_state_number)).second);
return new_state_number;
}
@@ -336,19 +339,20 @@ std::vector<State> GenerateStates(const PairVector& pairs) {
const Range& range = it->set.front();
const StringSet rest(it->set.begin() + 1, it->set.end());
const StateMap::const_iterator where = state_map.find(rest);
- const uint8 target_state = where == state_map.end()
- ? MakeState(rest, &states, &state_map)
- : where->second;
+ const uint8_t target_state = where == state_map.end()
+ ? MakeState(rest, &states, &state_map)
+ : where->second;
if (states[0].back().from == range.from()) {
DCHECK_EQ(1, states[0].back().target_state);
states[0].back().target_state = target_state;
DCHECK_LT(range.to(), 0xFF);
- const StateRange new_range = {static_cast<uint8>(range.to() + 1), 1};
+ const StateRange new_range = {static_cast<uint8_t>(range.to() + 1), 1};
states[0].push_back(new_range);
} else {
DCHECK_LT(range.to(), 0xFF);
- const StateRange new_range_initializer[] = {{range.from(), target_state},
- {static_cast<uint8>(range.to() + 1), 1}};
+ const StateRange new_range_initializer[] = {
+ {range.from(), target_state},
+ {static_cast<uint8_t>(range.to() + 1), 1}};
states[0]
.insert(states[0].end(),
new_range_initializer,
@@ -368,9 +372,9 @@ void PrintStates(const std::vector<State>& states, FILE* stream) {
// First calculate the start-offset of each state. This allows the state
// machine to jump directly to the correct offset, avoiding an extra
// indirection. State 0 starts at offset 0.
- std::vector<uint8> state_offset(1, 0);
- std::vector<uint8> shifts;
- uint8 pos = 0;
+ std::vector<uint8_t> state_offset(1, 0);
+ std::vector<uint8_t> shifts;
+ uint8_t pos = 0;
for (std::vector<State>::const_iterator state_it = states.begin();
state_it != states.end();
@@ -379,7 +383,7 @@ void PrintStates(const std::vector<State>& states, FILE* stream) {
// set bit in any of the ranges for this state, since this tells us how many
// bits we can discard and still determine what range a byte lies in. Sadly
// it appears that ffs() is not portable, so we do it clumsily.
- uint8 shift = 7;
+ uint8_t shift = 7;
for (State::const_iterator range_it = state_it->begin();
range_it != state_it->end();
++range_it) {
@@ -397,10 +401,10 @@ void PrintStates(const std::vector<State>& states, FILE* stream) {
fputs(kProlog, stream);
TablePrinter table_printer(stream);
- for (uint8 state_index = 0; state_index < states.size(); ++state_index) {
- const uint8 shift = shifts[state_index];
- uint8 next_range = 0;
- uint8 target_state = 1;
+ for (uint8_t state_index = 0; state_index < states.size(); ++state_index) {
+ const uint8_t shift = shifts[state_index];
+ uint8_t next_range = 0;
+ uint8_t target_state = 1;
fprintf(stream,
" // State %d, offset 0x%02x\n",
static_cast<int>(state_index),
« no previous file with comments | « base/i18n/break_iterator_unittest.cc ('k') | base/i18n/case_conversion.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698