문제

Mac OS X 및 iPhone OS와 함께 제공되는 ICU 라이브러리를 기반으로 구축 된 멋진 RegexKitlite 프레임 워크를 사용하고 있습니다. 경기를 검색 할 때 간헐적으로 나타나는이 오류를 제외하고는 지금까지 순조로운 항해였습니다.

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

이것을 일으키는 원인이 무엇인지 아십니까?

도움이 되었습니까?

해결책

노트: 저는 Regexkitlite의 저자입니다.

이것은 Regexkitlite 내의 내부 주장 실패입니다. 내부 내부 주장 검사가 많이 있습니다. 이것은 캐시에서 캐시 된 컴파일 된 정규식을 검색 한 후 검색된 캐시 된 Regex가 어떤 이유로 든 정확히 설정되지 않는다고 말합니다.

당신이 할 수있는 가장 좋은 방법은 버그 보고서를 제출하는 것입니다. Sourceforge.net Regexkit 버그 추적기. 가능하면 버그를 재현하는 테스트 사례를 제출하십시오. 이것은 완전하고 거칠고, 파란색 추측 중이지만, 어설 션 메시지를 바탕으로, 나는 그것이 당신이 사용하는 일치 작업과 관련이 있다고 확신합니다. range: 매개 변수, 그리고 그 범위는 지속적으로 '움직이고'줄어들고 있습니다. 그 범위는 2048 자 약 2048 자의 작은/큰 버퍼 크기를 넘을 수 있습니다. 또 다른 가능성은 유니 코드 문자를 포함하는 문자열을 검색하는 것입니다. Mutable String과 Backing Buffer는 성장하거나 줄어들 기 때문에 재 할당되었습니다 ... 또는 "비공개"인 Mutable String이 변이되어 이제 유니 코드 문자가 포함되어 있으며 캐시 된 UTF-16 변환에서 전환했습니다. 문자열 직접 버퍼.

바라건대, 그것은 어설 션 실패를 유발하는 코너 케이스를 좁히는 데 도움이되기를 바랍니다. 이봐, 적어도 그것은 튀어 나오는 대신 문제를 감지하고 Seg faulting 또는 bogus result strings를 반환합니다. :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top