Вопрос

Я использую замечательную среду RegexKitLite, созданную на основе библиотеки ICU, которая поставляется с Mac OS X и iPhone OS.До сих пор все шло гладко, за исключением этой ошибки, которая периодически появляется при поиске совпадений:

Internal Error
Invalid parameter not satisfying:
(cacheSlot->setToHash == buffer->hash) && (cacheSlot->setToLength == buffer->length) && (cacheSlot->setToUniChar == buffer->uniChar)

Есть идеи, что может быть причиной этого?

Это было полезно?

Решение

ПРИМЕЧАНИЕ:Я автор RegexKitLite.

Это внутренний сбой утверждения в RegexKitLite.Существует множество встроенных внутренних проверок утверждений.Это говорит о том, что после получения кэшированного скомпилированного регулярного выражения из кэша полученное кэшированное регулярное выражение по какой-то причине не настроено точно так, как должно быть.

Лучшее, что вы можете сделать, это отправить отчет об ошибке по адресу sourceforge.net Система отслеживания ошибок RegexKit.Если возможно, отправьте тестовый пример, воспроизводящий ошибку.Это абсолютное, дикое и неожиданное предположение, но, основываясь на сообщении утверждения, я готов поспорить, что оно как-то связано с операциями сопоставления, в которых вы используете range: параметр, и этот диапазон постоянно «перемещается» и сужается.Этот диапазон может пересекать малый/большой размер буфера, где-то около 2048 символов.Другая возможность - поиск строк, содержащих символы Юникода, и RegexKitLite использует прямой буфер строк, возможно, в изменяемой строке, а резервный буфер был перераспределен, поскольку он увеличился или уменьшился...или изменяемая строка, которая была «не-Unicode», была изменена и теперь содержит символы Unicode, и она переключилась с кэшированного преобразования UTF-16 на прямой буфер строк.

Надеемся, это поможет вам сузить крайний случай, вызывающий сбой утверждения.Эй, по крайней мере, он обнаруживает проблему вместо того, чтобы тащиться вперед и сегментировать ошибки или возвращать фиктивные строки результатов.:)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top