diff --git a/src/parser/ucp_table.cpp b/src/parser/ucp_table.cpp index 7b53d1d6..a6cb57cd 100644 --- a/src/parser/ucp_table.cpp +++ b/src/parser/ucp_table.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Intel Corporation + * Copyright (c) 2015-2016, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -117,13 +117,12 @@ void make_caseless(CodePointSet *cps) { bool flip_case(unichar *c) { assert(c); - const unicase *const uc_begin = ucp_caseless_def; - const unicase *const uc_end = - ucp_caseless_def + ARRAY_LENGTH(ucp_caseless_def); - const unicase test = { *c, 0 }; - const unicase *f = lower_bound(uc_begin, uc_end, test); - if (f->base == *c) { + + const auto uc_begin = begin(ucp_caseless_def); + const auto uc_end = end(ucp_caseless_def); + const auto f = lower_bound(uc_begin, uc_end, test); + if (f != uc_end && f->base == *c) { DEBUG_PRINTF("flipped c=%x to %x\n", *c, f->caseless); *c = f->caseless; return true;