]> git.sesse.net Git - casparcg/blobdiff - dependencies64/cef/linux/include/wrapper/cef_xml_object.h
Upgrade CEF to 3.3029.1611.g44e39a8 / Chromium 58.0.3029.81.
[casparcg] / dependencies64 / cef / linux / include / wrapper / cef_xml_object.h
similarity index 94%
rename from dependencies64/cef/include/wrapper/cef_xml_object.h
rename to dependencies64/cef/linux/include/wrapper/cef_xml_object.h
index d9f706fde0ea9fd2d76a350cd03b0d6aa886c157..bf1755432b00dcfd520b43e8052653043330d38a 100644 (file)
 #define CEF_INCLUDE_WRAPPER_CEF_XML_OBJECT_H_
 #pragma once
 
-#include "include/cef_base.h"
-#include "include/cef_xml_reader.h"
 #include <map>
 #include <vector>
 
+#include "include/base/cef_lock.h"
+#include "include/base/cef_macros.h"
+#include "include/base/cef_ref_counted.h"
+#include "include/cef_base.h"
+#include "include/cef_xml_reader.h"
+
 class CefStreamReader;
 
 ///
@@ -67,7 +71,7 @@ class CefStreamReader;
 //     (c) Element nodes are represented by their outer XML string.
 // </pre>
 ///
-class CefXmlObject : public CefBase {
+class CefXmlObject : public base::RefCountedThreadSafe<CefXmlObject> {
  public:
   typedef std::vector<CefRefPtr<CefXmlObject> > ObjectVector;
   typedef std::map<CefString, CefString > AttributeMap;
@@ -77,7 +81,6 @@ class CefXmlObject : public CefBase {
   // at least one character long.
   ///
   explicit CefXmlObject(const CefString& name);
-  virtual ~CefXmlObject();
 
   ///
   // Load the contents of the specified XML stream into this object.  The
@@ -173,6 +176,10 @@ class CefXmlObject : public CefBase {
   size_t FindChildren(const CefString& name, ObjectVector& children);
 
  private:
+  // Protect against accidental deletion of this object.
+  friend class base::RefCountedThreadSafe<CefXmlObject>;
+  ~CefXmlObject();
+
   void SetParent(CefXmlObject* parent);
 
   CefString name_;
@@ -181,8 +188,9 @@ class CefXmlObject : public CefBase {
   AttributeMap attributes_;
   ObjectVector children_;
 
-  IMPLEMENT_REFCOUNTING(CefXmlObject);
-  IMPLEMENT_LOCKING(CefXmlObject);
+  base::Lock lock_;
+
+  DISALLOW_COPY_AND_ASSIGN(CefXmlObject);
 };
 
 #endif  // CEF_INCLUDE_WRAPPER_CEF_XML_OBJECT_H_