From 378d4b51e3112a3a27eabfd3aa97caec2bd5dafd Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期五, 05 七月 2024 17:17:50 +0800 Subject: [PATCH] update --- jrj/xframe/src/xstring.cpp | 27 +++++++++++++++++++++------ 1 files changed, 21 insertions(+), 6 deletions(-) diff --git a/jrj/xframe/src/xstring.cpp b/jrj/xframe/src/xstring.cpp index 23f1c2c..ff59009 100644 --- a/jrj/xframe/src/xstring.cpp +++ b/jrj/xframe/src/xstring.cpp @@ -255,6 +255,7 @@ if(rhs.data)((KStringBlock<wchar_t>*)rhs.data)->AddRef(); } + xstring::xstring(wchar_t* val, bool shouldSysFree) :data(KStringBlock<wchar_t>::make(val,shouldSysFree)) { @@ -268,14 +269,19 @@ { } +xstring::xstring(LPARAM val, bool bdata) :data(bdata?(void*)val:(KStringBlock<wchar_t>::make(val))) +{ + if (bdata) + { + ((KStringBlock<wchar_t>*)data)->AddRef(); + } +} + xstring::xstring(double val):data((KStringBlock<wchar_t>::make(val))) { } -xstring::xstring(LPARAM val):data((KStringBlock<wchar_t>::make(val))) -{ -} xstring::~xstring() { @@ -284,8 +290,13 @@ xstring& xstring::operator =(const xstring& rhs) { if (data)((KStringBlock<wchar_t>*)data)->Release(); - ((KStringBlock<wchar_t>*)rhs.data)->AddRef(); - data = rhs.data; + if (rhs.data) + { + ((KStringBlock<wchar_t>*)rhs.data)->AddRef(); + data = rhs.data; + } + else + data = nullptr; return *this; } xstring& xstring::operator =(const wchar_t* rhs) @@ -590,7 +601,11 @@ return false; } -xstring xstring::replace(wchar_t* from, wchar_t* to, int pos) +xstring xstring::replace(const wchar_t* from, const wchar_t* to) +{ + return replace(from, to, 0); +} +xstring xstring::replace(const wchar_t* from, const wchar_t* to, int pos) { const wchar_t* pstr = c_str(); if (!pstr) return 0; -- Gitblit v1.9.3