gemini-testing / png-img

Lite libpng wrapper for node.js
MIT License
29 stars 13 forks source link

fix: use github actions to deploy binaries to github releases #65

Closed xrsd closed 2 years ago

xrsd commented 2 years ago

Чтобы убрать 20 с лишним ворнингов вида warning: this statement may fall through я добавил в конце каждого перехода в следующее состояние комментарий // fall through, который gcc понимает и перестает ругаться на отсутствие break.

Теоретически можно было бы вместо комментариев проставить везде break, но это меняет исполнение кода, так как после перехода в следующее состояние мы делали бы лишнюю итерацию цикла for(;;), прежде чем перейти к следующему кейсу. С точки зрения логики исполнения это ни на что не повлияло бы, но теоретически могло бы зааффектить быстродействие. Поэтому добавление комментария – самый безопасный метод.

Еще остаются ворнинги вида:

warning: ignoring return value of 'v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)', declared with attribute warn_unused_result [-Wunused-result]

но они ни на что не влияют. В интернете некоторые предлагают хак вида (void)(set() + 1); но здесь это не сработает, так как возвращается Maybe(bool), для которого оператор + не задан, а я не силен в плюсах, чтобы сходу понять как можно было бы обойти этот ворнинг.