Pregunta

Estoy usando el marco RegexKitLite maravillosa construida sobre la biblioteca de la UCI que se incluye con Mac OS X y iPhone OS. Ha sido fácil hasta ahora, con la excepción de este error que aparece de forma intermitente en la búsqueda de coincidencias:

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

¿Alguna idea de lo que podría estar causando esto?

¿Fue útil?

Solución

Nota: . Soy el autor de RegexKitLite

Este es un error de aserción interna dentro RegexKitLite. Hay una gran cantidad de controles internos afirmación incorporadas. Esto está diciendo que después de recuperar una expresión regular compilada en caché de la memoria caché, la expresión regular en caché recuperada no está configurado exactamente como debe ser por alguna razón.

Lo mejor que puede hacer es enviar un informe de error en sourceforge.net RegexKit seguimiento de errores . Si es posible, presentar un caso de prueba que reproduce el error. Esto es un total, salvaje, fuera de la suposición azul, pero basado en el mensaje afirmación, apuesto que tiene algo que ver con las operaciones de partido en el que está utilizando el parámetro range:, y que está en constante gama 'moviendo" y la contracción. ese rango puede cruzar el tamaño del búfer pequeña / grande, en algún lugar alrededor de 2048 caracteres. Otra posibilidad es buscar cadenas que contienen caracteres Unicode y RegexKitLite está usando las cuerdas búfer directa, posiblemente en una cadena mutable y el búfer de respaldo ha reasignarse porque creció o se contrajo ... o, una cadena mutable que se ha mutado "no Unicode" y ahora contiene caracteres Unicode, y tiene interruptor de la caché de conversión de UTF-16 a las cadenas de búfer directa.

Con suerte, que le ayudará a optimizar el caso esquina que está provocando el error de aserción. Bueno, al menos es la detección de un problema en lugar de trabajos laboriosos y Seg fallas o devolver cadenas de resultados falsos. :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top