16058{
16059 JSON_ASSERT(len >= 1);
16060 JSON_ASSERT(dist <= delta);
16061 JSON_ASSERT(rest <= delta);
16062 JSON_ASSERT(ten_k > 0);
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083 while (rest < dist
16084 && delta - rest >= ten_k
16085 && (rest + ten_k < dist || dist - rest > rest + ten_k - dist))
16086 {
16087 JSON_ASSERT(buf[len - 1] != '0');
16088 buf[len - 1]--;
16089 rest += ten_k;
16090 }
16091}