Changed validate_next to take a reference instead of pointer. Resulted in 5% performance improvement.
git-svn-id: http://svn.code.sf.net/p/utfcpp/code@129 a809a056-fc17-0410-9590-b4f493f8b08e
This commit is contained in:
parent
b13a2054ce
commit
54c1972fc4
2 changed files with 5 additions and 5 deletions
|
@ -137,7 +137,7 @@ namespace utf8
|
||||||
uint32_t next(octet_iterator& it, octet_iterator end)
|
uint32_t next(octet_iterator& it, octet_iterator end)
|
||||||
{
|
{
|
||||||
uint32_t cp = 0;
|
uint32_t cp = 0;
|
||||||
internal::utf_error err_code = utf8::internal::validate_next(it, end, &cp);
|
internal::utf_error err_code = utf8::internal::validate_next(it, end, cp);
|
||||||
switch (err_code) {
|
switch (err_code) {
|
||||||
case internal::UTF8_OK :
|
case internal::UTF8_OK :
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -220,7 +220,7 @@ namespace internal
|
||||||
#undef UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR
|
#undef UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR
|
||||||
|
|
||||||
template <typename octet_iterator>
|
template <typename octet_iterator>
|
||||||
utf_error validate_next(octet_iterator& it, octet_iterator end, uint32_t* code_point)
|
utf_error validate_next(octet_iterator& it, octet_iterator end, uint32_t& code_point)
|
||||||
{
|
{
|
||||||
// Save the original value of it so we can go back in case of failure
|
// Save the original value of it so we can go back in case of failure
|
||||||
// Of course, it does not make much sense with i.e. stream iterators
|
// Of course, it does not make much sense with i.e. stream iterators
|
||||||
|
@ -255,8 +255,7 @@ namespace internal
|
||||||
if (utf8::internal::is_code_point_valid(cp)) {
|
if (utf8::internal::is_code_point_valid(cp)) {
|
||||||
if (!utf8::internal::is_overlong_sequence(cp, length)){
|
if (!utf8::internal::is_overlong_sequence(cp, length)){
|
||||||
// Passed! Return here.
|
// Passed! Return here.
|
||||||
if (code_point)
|
code_point = cp;
|
||||||
*code_point = cp;
|
|
||||||
++it;
|
++it;
|
||||||
return UTF8_OK;
|
return UTF8_OK;
|
||||||
}
|
}
|
||||||
|
@ -274,7 +273,8 @@ namespace internal
|
||||||
|
|
||||||
template <typename octet_iterator>
|
template <typename octet_iterator>
|
||||||
inline utf_error validate_next(octet_iterator& it, octet_iterator end) {
|
inline utf_error validate_next(octet_iterator& it, octet_iterator end) {
|
||||||
return utf8::internal::validate_next(it, end, 0);
|
uint32_t ignored;
|
||||||
|
return utf8::internal::validate_next(it, end, ignored);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace internal
|
} // namespace internal
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue