Changeset 371 for cpp/frams


Ignore:
Timestamp:
04/21/15 15:19:47 (7 years ago)
Author:
Maciej Komosinski
Message:

THREAD_LOCAL uses ThreadLocal_ prefix for variables. The static object inside the single-threaded implementation is no longer associated with a class.

Location:
cpp/frams
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/util/extvalue.cpp

    r348 r371  
    124124}
    125125
    126 THREAD_LOCAL_DEF(ExtObject::Serialization, ExtObject::serialization);
     126THREAD_LOCAL_DEF(ExtObject::Serialization, ExtObject_serialization);
    127127
    128128void ExtObject::Serialization::begin()
     
    185185SString ExtObject::serialize_inner() const
    186186{
    187         int ref = tlsGetRef(serialization).add(*this);
     187        int ref = tlsGetRef(ExtObject_serialization).add(*this);
    188188        if (ref >= 0)
    189189                return SString::sprintf("^%d", ref);
     
    216216        }
    217217
    218         tlsGetRef(serialization).remove(*this);//undo nonserializable reference
     218        tlsGetRef(ExtObject_serialization).remove(*this);//undo nonserializable reference
    219219        SString ret = interfaceName();
    220220        ret += SString::sprintf("<%p>", object ? object : paraminterface);
     
    224224SString ExtObject::serialize() const
    225225{
    226         tlsGetRef(serialization).begin();
     226        tlsGetRef(ExtObject_serialization).begin();
    227227        SString ret = serialize_inner();
    228         tlsGetRef(serialization).end();
     228        tlsGetRef(ExtObject_serialization).end();
    229229        return ret;
    230230}
     
    998998                VectorObject *vec = new VectorObject;
    999999                ExtObject o(&VectorObject::par, vec);
    1000                 tlsGetRef(ExtObject::serialization).add(o);
     1000                tlsGetRef(ExtObject_serialization).add(o);
    10011001                const char* p = in + 1;
    10021002                ExtValue tmp;
     
    10291029                DictionaryObject *dic = new DictionaryObject;
    10301030                ExtObject o(&DictionaryObject::par, dic);
    1031                 tlsGetRef(ExtObject::serialization).add(o);
     1031                tlsGetRef(ExtObject_serialization).add(o);
    10321032                const char* p = in + 1;
    10331033                ExtValue args[2]/*={value,key}*/, dummy_ret;
     
    10801080                if (ret && (ref.getType() == TInt))
    10811081                {
    1082                         const ExtObject* o = tlsGetRef(ExtObject::serialization).get(ref.getInt());
     1082                        const ExtObject* o = tlsGetRef(ExtObject_serialization).get(ref.getInt());
    10831083                        if (o)
    10841084                        {
     
    11051105                                {
    11061106                                        cls->call(m, &tmp, this);
    1107                                         tlsGetRef(ExtObject::serialization).replace(tmp.getObject(), getObject());
     1107                                        tlsGetRef(ExtObject_serialization).replace(tmp.getObject(), getObject());
    11081108                                        return ret;
    11091109                                }
     
    11161116                                {
    11171117                                        cls->call(m, &tmp, this);
    1118                                         tlsGetRef(ExtObject::serialization).replace(tmp.getObject(), getObject());
     1118                                        tlsGetRef(ExtObject_serialization).replace(tmp.getObject(), getObject());
    11191119                                        return ret;
    11201120                                }
     
    11261126                                {
    11271127                                        cls->call(m, &tmp, this);
    1128                                         tlsGetRef(ExtObject::serialization).replace(tmp.getObject(), getObject());
     1128                                        tlsGetRef(ExtObject_serialization).replace(tmp.getObject(), getObject());
    11291129                                        return ret;
    11301130                                }
    11311131                        }
    1132                         tlsGetRef(ExtObject::serialization).remove(tmp.getObject());
     1132                        tlsGetRef(ExtObject_serialization).remove(tmp.getObject());
    11331133                        setEmpty();
    11341134                }
     
    11441144const char* ExtValue::deserialize(const char* in)
    11451145{
    1146         tlsGetRef(ExtObject::serialization).begin();
     1146        tlsGetRef(ExtObject_serialization).begin();
    11471147        const char* ret = deserialize_inner(in);
    1148         tlsGetRef(ExtObject::serialization).end();
     1148        tlsGetRef(ExtObject_serialization).end();
    11491149        return ret;
    11501150}
  • cpp/frams/util/extvalue.h

    r337 r371  
    9999        };
    100100
    101         static THREAD_LOCAL_DECL(Serialization, serialization);
    102 };
     101};
     102
     103extern THREAD_LOCAL_DECL(ExtObject::Serialization, ExtObject_serialization);
    103104
    104105class ExtValue
  • cpp/frams/vm/classes/collectionobj.cpp

    r333 r371  
    149149}
    150150
    151 static THREAD_LOCAL_DEF(SList,tostring_trace);
     151static THREAD_LOCAL_DEF(SList,VectorObject_tostring_trace);
    152152
    153153void VectorObject::get_toString(ExtValue* ret)
     
    155155SString out="[";
    156156//static SListTempl<VectorObject*> trace;
    157 if (tlsGetRef(tostring_trace).find(this)>=0)
     157if (tlsGetRef(VectorObject_tostring_trace).find(this)>=0)
    158158        out+="...";
    159159else
    160160        {
    161         tlsGetRef(tostring_trace)+=this;
     161        tlsGetRef(VectorObject_tostring_trace)+=this;
    162162        for(int i=0;i<data.size();i++)
    163163                {
     
    169169                        out+="null";
    170170                }
    171         tlsGetRef(tostring_trace)-=this;
     171        tlsGetRef(VectorObject_tostring_trace)-=this;
    172172        }
    173173out+="]";
     
    402402SString out="{";
    403403//static SListTempl<DictionaryObject*> trace;
    404 if (tlsGetRef(tostring_trace).find(this)>=0)
     404if (tlsGetRef(VectorObject_tostring_trace).find(this)>=0)
    405405        out+="...";
    406406else
    407407        {
    408         tlsGetRef(tostring_trace)+=this;
     408        tlsGetRef(VectorObject_tostring_trace)+=this;
    409409        for(HashEntryIterator it(hash);it.isValid();)
    410410                {
     
    418418                if (it.isValid()) out+=",";
    419419                }
    420         tlsGetRef(tostring_trace)-=this;
     420        tlsGetRef(VectorObject_tostring_trace)-=this;
    421421        }
    422422out+="}";
Note: See TracChangeset for help on using the changeset viewer.