Feature/2465 2466#2491
Closed
uzanka wants to merge 2 commits into
Closed
Conversation
GitHub #2466 Variant: コンストラクタ初期化漏れ, operator=メモリリーク, operator=で自分自身を指定すると不正
|
Contributor
|
もしかして、こちらがダメなやつ? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


PR対象
カテゴリ
PR の背景
GitHub #2465
GitHub #2466
仕様・動作説明
SysString
operator=で更新前情報を解放する。更新後情報の確保で失敗し例外が発生する場合は更新前情報の状態となる。
operator=で自分自身を指定した場合には何もしない。
Variant
コンストラクタでメンバ変数を初期化する。
operator=で更新前情報を解放する。更新後情報の確保で失敗し例外が発生する場合は更新前情報の状態となる。
operator=で自分自身を指定した場合には何もしない。
PR の影響範囲
Releaseモードだとメンバ変数が初期化されるため問題が起きないのだろう。
サクラエディタのソースでは自分自身を指定するoperator=がないため問題が起きない。
メモリリークが発生しなくなる。
テスト内容
OleTypes.h(SysString, Variant)のテストがないため、全メソッドのテストを記載する。
関連 issue, PR
参考資料