سؤال

أنا أستخدم إطار Regexkitlite الرائع الذي تم إنشاؤه على مكتبة وحدة العناية المركزة التي تشحن باستخدام 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. هناك الكثير من الشيكات التأكيد الداخلية المدمجة. هذا واحد يقول أنه بعد استرجاع Regex المكون من ذاكرة التخزين المؤقتة من ذاكرة التخزين المؤقت، لا يتم إعداد Regex المعاد استرجاعه تماما كما يجب أن يكون لسبب ما.

أفضل شيء يمكنك القيام به هو تقديم تقرير علة في SourceForge.net Regexkit Bug Tracker. وبعد إذا كان ذلك ممكنا على الإطلاق، قم بتقديم حالة اختبار يستنسخ الخطأ. هذا ما مجموعه، البرية، من تخمين الأزرق، ولكن بناء على رسالة التأكيد، أراهن على أنه يحتوي على شيء ما مع عمليات المباريات التي تستخدم فيها range: المعلمة، وهذا النطاق "يتحرك" باستمرار وتقلص. قد يعبر هذا النطاق حجم المخزن المؤقت صغير / كبير، في مكان ما حوالي 2048 حرفا. احتمال آخر هو البحث في سلاسل تحتوي على أحرف Unicode و Regexkitlite تستخدم السلاسل المخزن المؤقت المباشر، ربما على يتم إعادة تخصيص سلسلة متغيرة ومخزن مؤقت للدعم لأنه نمت أو تقلصت ... أو سلسلة قابلة للتغيير تم تغييرها "غير Unicode" وحققت الآن أحرف Unicode، وقد تبديل تحويل UTF-16 المخزنة مؤقتا إلى سلاسل المخزن المؤقت المباشر.

نأمل أن يساعدك ذلك في تضييق القضية الزاوية التي تؤدي إلى فشل التأكيد. مهلا، على الأقل يكتشف مشكلة بدلا من Plodding و SEG FILDING أو إرجاع سلاسل نتيجة Bogus. :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top