-
Notifications
You must be signed in to change notification settings - Fork 176
CharPointerWを削除する #1692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CharPointerWを削除する #1692
Conversation
96ddb51 to
b47ccff
Compare
|
✅ Build sakura 1.0.3823 completed (commit 9dc4ec897b by @berryzplus) |
|
Kudos, SonarCloud Quality Gate passed! |
|
✅ Build sakura 1.0.3824 completed (commit 57a84d3110 by @berryzplus) |
| // ドライブ名はパスの深さに数えない | ||
| if( ((L'A' <= path[0] && path[0] <= L'Z') || (L'a' <= path[0] && path[0] <= L'z')) | ||
| && path[1] == L':' && path[2] == L'\\' ){ | ||
| if (std::regex_search(path, std::wregex(LR"(^[A-Z]:\\)", std::wregex::icase))) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
この変更はPRの説明には書かれている内容とは違いますが必要な変更でしょうか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
いいえ、変更しなくても目的は達成できます。
beru
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
軽く動作確認しました。問題無いと思います。
|
レビューありがとうございます。マージしちゃいます。 |
PR の目的
SonarCloudの警告を減らすことが目的です。
コード妥当性と存在意義の怪しいクラスを削除します。
カテゴリ
PR の背景
SonarCloud解析で以下のようなBugs警告(Criticalレベル)が検出されています。(#1504)
CharPointerA 既に未使用なので削除してしまいます。
CharPointerW まだ利用されてるので対策が必要です。
警告の超訳:
コピーコンストラクタが定義されていますが、デストラクタとコピー代入演算子が未定義です。警告自体は、これまで対応してきた「rule of five」のパターンで対処できます。
しかし、
CharPointerWには複数の問題があることが分かりました。sakura/sakura_core/charset/CharPointer.h
Lines 82 to 84 in ef76fe1
やりたいこと(≒ただのポインタ加算)に対してコードが複雑すぎます。
これらの問題に対処するのは不可能と思うので、ファイルごと削除してしまいます。
PR のメリット
PR のデメリット (トレードオフとかあれば)
警告が検出された部分をファイルごと削除してしまうので、警告が減らない可能性はないと思います。
仕様・動作説明
アプリの機能に影響を与えるような変更ではありません。
このPRでは、問題が検出されたクラスに依存するコードを書き替えてクラス自体を削除します。
PR の影響範囲
CharPointerWを利用していた関数を使う処理に影響します。
変更前後で関数の挙動を変えないため、実害はないと考えています。
テスト内容
CharPointerWに依存するグローバル関数2件についてテストコードを作成し、変更前後で動作が変わらないことを確認しました。
関連 issue, PR
#1504
#1605
参考資料