New Core Fixes

git-svn-id: svn://ultimatepp.org/upp/trunk@9776 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2016-05-03 07:56:44 +00:00
parent 3a43105eda
commit 0801e99da7
4 changed files with 12 additions and 16 deletions

View file

@ -48,14 +48,14 @@ template <class O, class M classAPc>
Cb_<A_> ptebackn(O *object, Res (M::*method)(AMP_) P_p_)
{
Ptr<O> ptr = object;
return Cb_<A_>([=](A_a_) { if(ptr) return (ptr->*method)(ap_); }, 0);
return Cb_<A_>([=](A_a_) { if(ptr) return (ptr->*method)(ap_); return Res(); }, 0);
}
template <class O, class M classAPc>
Cb_<A_> ptebackn(O *object, Res (M::*method)(AMP_) const P_p_)
{
Ptr<O> ptr = object;
return Cb_<A_>([=](A_a_) { if(ptr) return (object->*method)(ap_); }, 0);
return Cb_<A_>([=](A_a_) { if(ptr) return (object->*method)(ap_); return Res(); }, 0);
}
#ifdef classP

View file

@ -630,22 +630,17 @@ Value::ConstIterator Value::End() const
return GetVA().End();
}
void Value::CloneArray()
{
ValueArray::Data *data = (ValueArray::Data *)ptr();
ValueArray::Data *d = new ValueArray::Data;
d->data = clone(data->data);
data->Release();
ptr() = d;
data = d;
}
force_inline
Vector<Value>& Value::UnShareArray()
{
ValueArray::Data *data = (ValueArray::Data *)ptr();
if(data->GetRefCount() != 1)
CloneArray();
if(data->GetRefCount() != 1) {
ValueArray::Data *d = new ValueArray::Data;
d->data = clone(data->data);
data->Release();
ptr() = d;
data = d;
}
return data->data;
}

View file

@ -176,7 +176,6 @@ protected:
int PolyCompare(const Value& v) const;
void CloneArray();
Vector<Value>& UnShareArray();
const Vector<Value>& GetVA() const;

View file

@ -6,7 +6,6 @@ CLANG11 autotest/StringBuffer2GB : ERROR
CLANG11 autotest/CheckDownloads : FAILED
CLANG11 autotest/Core11 : FAILED
CLANG11 autotest/CompareContainer : FAILED
CLANG11 autotest/CallbackPick : ERROR
CLANG11 reference/SocketServer : ERROR
CLANG11 reference/Cv : ERROR
CLANG11 reference/CallbackPickClone : ERROR
@ -21,6 +20,9 @@ CLANG11 upptst/idetest : ERROR
CLANG11 upptst/Zip : ERROR
CLANG11 tutorial/Ntl10 : ERROR
CLANG11 autotest/CallbackPick : ERROR
oportunity &&
RawValueRep - PICK DEEP no more necessary, RawDeepToValue?