アカウント名:
パスワード:
警告を無視しちゃいかんという教訓を得たと。
こんな感じに、if分を一行にまとめてしまえば、こんな不具合出なかった気がします。
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail;if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail;if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail;
一行が長くなるのを嫌ったのかな?
if文を1行にまとめるよりも1個にまとめた方がいいんじゃないの?
if (err = (SSLHashSHA1.update(&hashCtx, &serverRandom) || SSLHashSHA1.update(&hashCtx, &signedParams) || SSLHashSHA1.final(&hashCtx, &hashOut))) goto fail;
それエラー(0以外)の時しかfinalまで呼ばれない上にerrに0か1しか入らないじゃん
途中でエラー(0以外)が出たらfinalが呼ばれないんだけど。それは間違ってない。ただ、Cの仕様では論理演算子は1か0しか返さないようだから、その点に関してはあなたの指摘の通り。
でも、gccとかだと、コンパイラが警告を出すこともなく、動作も正常だったと思うんだけどな。LISPみたいに書けて、便利だなと思った記憶が。記憶違いかな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
unreachable codeの警告は無視されたのか (スコア:0)
警告を無視しちゃいかんという教訓を得たと。
こんな感じに、if分を一行にまとめてしまえば、こんな不具合出なかった気がします。
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail;
一行が長くなるのを嫌ったのかな?
Re:unreachable codeの警告は無視されたのか (スコア:0)
if文を1行にまとめるよりも1個にまとめた方がいいんじゃないの?
Re: (スコア:0)
それエラー(0以外)の時しかfinalまで呼ばれない上にerrに0か1しか入らないじゃん
Re: (スコア:0)
途中でエラー(0以外)が出たらfinalが呼ばれないんだけど。それは間違ってない。ただ、Cの仕様では論理演算子は1か0しか返さないようだから、その点に関してはあなたの指摘の通り。
でも、gccとかだと、コンパイラが警告を出すこともなく、動作も正常だったと思うんだけどな。LISPみたいに書けて、便利だなと思った記憶が。記憶違いかな。