Open m-tmatma opened 6 years ago
変換結果の出力先で生のメモリアドレスを指定するのではなく CNativeW 等のクラスを指定して、関数内部で適宜必要な サイズを計算した上で出力することにより簡略化できないだろうか?
sjis to uni はざっくり2倍+アルファ、 utf8 to uni は純粋に2倍で確保してた気がします。
tr1くらいの頃から標準の文字コード変換クラスが追加されていますが、 そっちへの移行は考えずに独自実装路線を貫きます?
「NUL」や「文字に評価できないバイナリ値」を文字列に含めたいかどうかが焦点になると思っています。
CUtf8::Utf8ToUni で出力バッファサイズに対するチェックがない (インターフェース的に出力バッファサイズ自体渡さない)
https://github.com/sakura-editor/sakura/blob/ca0b56d0971efdc748489773cee577b6c220738a/sakura_core/charset/CUtf8.cpp#L43-L84
CShiftJis::SjisToUni も同様。他にもあるかも。
https://github.com/sakura-editor/sakura/blob/ca0b56d0971efdc748489773cee577b6c220738a/sakura_core/charset/CShiftJis.cpp#L46-L105