|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Expert Confirmé Sénior
![]() ![]() |
![]() En utilisant la classe BZip2 de la #ZipLib, j'ai rencontré un pb que je n'avais jamais connu Ma config : WinXP + DotNet 1.1 + VS.Net 2003 En voulant compresser n'importe quoi avec BZip2OutputStream avec les paramètres par défaut, j'obtient une érreur : Citation:
Code :
note. J'ai testé avec les fichiers StrangeCRC.cs, BZip2*.cs des version 0.50,0.60,0.80,0.84, de plus jusqu'à hier mon assembly fonctionnait nikel |
|||
|
|
00
|
|
|
#2 | ||
|
Membre expérimenté
![]() Inscription : juillet 2002 Messages : 487 ![]() |
La première chose à faire est de décomposer la ligne en question pour voir quelle opération cause une erreur :
Code :
__________________
On ne peut pas faire boire un âne qui n'a pas soif. |
||
|
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
Je vient d'éssayer un truc, dans les options de Visual j'ai désactivé ( False ) Vérifier les dépacements de capacité arithmétiques positifs et négatifs et ça remarche nikel Mais alors pourquoi vérifier ou non les dépacements de capacité ? |
|
|
|
00
|
|
|
#4 | |
|
Membre expérimenté
![]() Inscription : juillet 2002 Messages : 487 ![]() |
Citation:
__________________
On ne peut pas faire boire un âne qui n'a pas soif. |
|
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() ![]() |
J'ai réalisé un test ( désolé, le code est long
Propriété "Vérifier..." définie à "True" Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Inscription : juillet 2002 Messages : 487 ![]() |
Ok mais tu ne donnes toujours pas l'instruction précise qui génère l'erreur.
Le pb vient du cast, du xor ...? Voir ma première question.
__________________
On ne peut pas faire boire un âne qui n'a pas soif. |
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() ![]() |
dsl j'avais oublié de décomposer cette ligne
Code :
En fait, si je garde que la valeur "long" sans faire un cast vers int, il n'y a aucune érreur ( et j'ai bien mon CRC ) mais alors pourquoi dans la #zipLib font-il le cast ???? |
||
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() Inscription : juillet 2002 Messages : 487 ![]() |
Il me paraît préférable d'utiliser des UInt d'un bout à l'autre pour être plus cohérent. Voir s'il n'y a pas d'effets de bord ...
__________________
On ne peut pas faire boire un âne qui n'a pas soif. |
|
|
00
|
|
|
#9 |
|
Invité(e)
![]() Messages : n/a ![]() |
+100 pour NicolasG
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() |
je m'en vais de ce pas corriger le fichier StrangeCRC.cs de la #ziplib que j'utilise
|
|
|
00
|
|
|
#11 |
|
Inscription : juillet 2009 Messages : 3 ![]() |
Sinon la solution est dans C#
Regarde le mot clé unchecked moi je l'ai fait et plus de soucis. |
|
|
02
|
|
|
#12 |
|
Expert Confirmé
![]() Inscription : septembre 2010 Messages : 1 366 ![]() |
C'est sûr : si vous désactivez les vérifications arithmétiques aucune exception ne vous sera renvoyée à la tronche. Mais ça ne voudra pas dire pour autant que le résultat sera correct ! Cela peut très bien traduire une erreur qui va corrompre le fichier.
Deux solutions : * Examiner soigneusement le code source de la biblio pour comprendre pourquoi il y a dépassement de capacité et si c'est un comportement normal ou non. Puis en déduire si c'est un bug de la biblio (et soumettre un patch) ou une erreur dans la façon dont elle est utilisée (et corriger). * Contacter l'auteur en espérant qu'il accepte de se pencher sur le problème. EDIT: Cette histoire m'a fait penser à ce billet de Raymond Chen. N'y voyez rien d'agressif, simplement les deux situations sont parfaitement analogues et Raymond Chen a un certain talent pour raconter ce genre d'histoire. - Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error? - Apparently everyone. |
|
|
20
|
Copyright © 2000-2013 - www.developpez.com