reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h
  247   CopyOnWriteVector(CopyOnWriteVector &&V) : Data(V.Data) { V.Data = nullptr; }
  247   CopyOnWriteVector(CopyOnWriteVector &&V) : Data(V.Data) { V.Data = nullptr; }
  251     Data = V.Data;
  251     Data = V.Data;
  252     V.Data = nullptr;
  263   bool valid() const  { return Data; }
  266   bool writable() const { return Data && Data->NumRefs == 1; }
  266   bool writable() const { return Data && Data->NumRefs == 1; }
  270     if (!Data) {
  271       Data = new VectorData();
  277     if (!Data)
  279     if (Data->NumRefs <= 1)
  280       delete Data;
  282       --Data->NumRefs;
  283     Data = nullptr;
  288     if (!Data) {
  289       Data = new VectorData();
  292     if (Data->NumRefs == 1)
  294     --Data->NumRefs;
  295     Data = new VectorData(*Data);
  295     Data = new VectorData(*Data);
  299   CopyOnWriteVector clone() { return CopyOnWriteVector(Data); }
  303   const std::vector<T> &elements() const { return Data->Vect; }
  310   unsigned size() const { return Data ? elements().size() : 0; }
  313   bool sameAs(const CopyOnWriteVector &V) const { return Data == V.Data; }
  313   bool sameAs(const CopyOnWriteVector &V) const { return Data == V.Data; }
  318     Data->Vect.clear();
  324     Data->Vect.push_back(Elem);
  331     return Data->Vect[i];
  337     Data->Vect.erase(Data->Vect.begin() + i, Data->Vect.end());
  337     Data->Vect.erase(Data->Vect.begin() + i, Data->Vect.end());
  337     Data->Vect.erase(Data->Vect.begin() + i, Data->Vect.end());
  342     if (!Data)
  344     ++Data->NumRefs;