Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

RV-230NE ファームウェア Version 5.11

NTTからダイレクトメールが届いた。

「ルータのファームウェアをアップデートしないとひかり電話で通話できなくなっちゃうよ」

ああそうかすっかり忘れてた。
何日連続使用で通話出来なくなるんだっけ。249日?
最後に再起動したのが確か去年の12月22日だから、今日でえーと、247日?
それは……いいタイミングだねぇ(;´∀`)

08月19日のココロ日記(BlogPet)

ふみ?☆云々たべたいですぅ……

*このエントリは、ブログペットのココロが書いてます♪

本日見かけた酷いコード11

タグ: C++ 酷いコード
struct Object
{
	int point_count;
	int* xpoints;
	int* ypoints;
	// 他省略
};

int* get_point(Objects* obj, int index, int* point)
{
	if(index > obj->point_count - 1)
	{
		point[0] = obj->xpoints[obj->point_count];
		point[1] = obj->ypoints[obj->point_count];
		return point;
	}
	point[0] = obj->xpoints[index];
	point[1] = obj->ypoints[index];
	return point;
}

「indexが総座標数を超えている場合は最後の座標を返す」つもりなのだろうが、これでは「最後の座標の次」を返そうとして、確保したメモリ領域の外を参照してしまう。
たとえ最後の座標を返すようになっていたとしても、総座標数が0の時にはどうしようもない。
コーディングもミスっているが設計もミスっている。

get_center(
	get_point(obj, index1, point),
	get_point(obj, index2, point),
	center_point
);

C言語を知っている人なら、get_point()の定義とこの行を示されれば、何か問題がありそうと感づくことだろう。
初歩的ゆえにありがちなミス。

void clear_objects(std::vector<Object> objs)
{
	objs.clear();
}

C++を知っている人なら(ry
ここだけ見ると単に参照記号を付け忘れただけのようだが、コード中にvectorの参照渡し(ポインタ渡し含む)が存在せず、数千の要素を含むvectorを頻繁にコピーしているところを見るに、何か宗教上の理由によりvectorを参照渡しできない人が書いたのかもしれない。

こんな感じのコードが延々と続く。
これが「新人に実装させてみてレビューを控えているコード」とかいったものであればどうということはない、これを踏まえて次頑張れってなものだが、「既に正式に使われているプログラムのコード」であるからなんともはや。
「酷いコード」云々以前に、「酷い開発体制」である。

Figma こなた 冬服ver.

造形、影の落ち方、肌の色は、冬服版の方が好み。
ただ、頭部パーツが異様に外れやすいのが難。
自分でいい具合に補強しろということだろうか。

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。