質問

私は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内の内部アサーションの失敗です。内蔵の内部アサーションチェックがたくさんあります。この1つは、それが何らかの理由であるべきなキャッシュからキャッシュされたコンパイル済みの正規表現を取得した後、取得したキャッシュされた正規表現が正確に設定されていないことを言ってます。

あなたができる最善のことは、 sourceforge.net RegexKitバグトラッカーでバグレポートを提出していますに。もし可能ならば、バグを再現するテストケースを提出します。これは、青色の推測のうち、野生の、合計ですが、アサーションメッセージに基づいて、私はそれはあなたがrange:パラメータを使用しているにマッチ操作とは何かを持っていることを賭けるだろう、とその範囲は、常に「「動いていますそして、縮小。その範囲はどこかに2048の文字の周りに、小さな/大きなバッファサイズを越えることがあります。別の可能性は、Unicode文字を含む文字列を検索しているとRegexKitLiteはおそらく可変文字列に、文字列に直接バッファを使用しており、バッキング・バッファがあるため再割り当てされましたそれが成長したか、縮小...または、「非Unicode」であった可変文字列が変異し、現在はUnicode文字が含まれている、そしてそれは、文字列にキャッシュされたUTF-16変換ダイレクトバッファから切り替えたされています。

うまくいけば、それはあなたがアサーション失敗をトリガされたコーナーケースを絞り込むのに役立ちます。ねえ、少なくともそれが問題を検出する代わりに沿ってploddingと断層運動SEGまたは偽の結果文字列を返すのです。 :)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top