<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>LibDataBroker-1.1/README.textile</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -2,49 +2,65 @@
 assert(LibStub, &quot;LibDataBroker-1.1 requires LibStub&quot;)
 assert(LibStub:GetLibrary(&quot;CallbackHandler-1.0&quot;, true), &quot;LibDataBroker-1.1 requires CallbackHandler-1.0&quot;)
 
-local lib = LibStub:NewLibrary(&quot;LibDataBroker-1.1&quot;, 1)
+local lib, oldminor = LibStub:NewLibrary(&quot;LibDataBroker-1.1&quot;, 3)
 if not lib then return end
+oldminor = oldminor or 0
 
 
 lib.callbacks = lib.callbacks or LibStub:GetLibrary(&quot;CallbackHandler-1.0&quot;):New(lib)
 lib.attributestorage, lib.namestorage, lib.proxystorage = lib.attributestorage or {}, lib.namestorage or {}, lib.proxystorage or {}
-local attributestorage, namestorage, proxystorage = lib.attributestorage, lib.namestorage, lib.proxystorage
+local attributestorage, namestorage, callbacks = lib.attributestorage, lib.namestorage, lib.callbacks
 
-local domt = {
-	__metatable = &quot;access denied&quot;,
-	__newindex = function(self, key, value)
+if oldminor &lt; 2 then
+	lib.domt = {
+		__metatable = &quot;access denied&quot;,
+		__index = function(self, key) return attributestorage[self] and attributestorage[self][key] end,
+	}
+end
+
+if oldminor &lt; 3 then
+	lib.domt.__newindex = function(self, key, value)
 		if not attributestorage[self] then attributestorage[self] = {} end
 		if attributestorage[self][key] == value then return end
 		attributestorage[self][key] = value
 		local name = namestorage[self]
 		if not name then return end
-		lib.callbacks:Fire(&quot;LibDataBroker_AttributeChanged&quot;, name, key, value)
-		lib.callbacks:Fire(&quot;LibDataBroker_AttributeChanged_&quot;..name, name, key, value)
-		lib.callbacks:Fire(&quot;LibDataBroker_AttributeChanged_&quot;..name..&quot;_&quot;..key, name, key, value)
-		lib.callbacks:Fire(&quot;LibDataBroker_AttributeChanged__&quot;..key, name, key, value)
-	end,
-	__index = function(self, key)
-		return attributestorage[self] and attributestorage[self][key]
-	end,
-}
-
-function lib:NewDataObject(name)
-	if proxystorage[name] then return end
-
-	local dataobj = setmetatable({}, domt)
-	proxystorage[name], namestorage[dataobj] = dataobj, name
-	lib.callbacks:Fire(&quot;LibDataBroker_DataObjectCreated&quot;, name, dataobj)
-	return dataobj
+		callbacks:Fire(&quot;LibDataBroker_AttributeChanged&quot;, name, key, value, self)
+		callbacks:Fire(&quot;LibDataBroker_AttributeChanged_&quot;..name, name, key, value, self)
+		callbacks:Fire(&quot;LibDataBroker_AttributeChanged_&quot;..name..&quot;_&quot;..key, name, key, value, self)
+		callbacks:Fire(&quot;LibDataBroker_AttributeChanged__&quot;..key, name, key, value, self)
+	end
 end
 
-function lib:DataObjectIterator()
-	return pairs(proxystorage)
-end
+if oldminor &lt; 2 then
+	function lib:NewDataObject(name, dataobj)
+		if self.proxystorage[name] then return end
 
-function lib:GetDataObjectByName(dataobjectname)
-	return proxystorage[dataobjectname]
+		if dataobj then
+			assert(type(dataobj) == &quot;table&quot;, &quot;Invalid dataobj, must be nil or a table&quot;)
+			self.attributestorage[dataobj] = {}
+			for i,v in pairs(dataobj) do
+				self.attributestorage[dataobj][i] = v
+				dataobj[i] = nil
+			end
+		end
+		dataobj = setmetatable(dataobj or {}, self.domt)
+		self.proxystorage[name], self.namestorage[dataobj] = dataobj, name
+		self.callbacks:Fire(&quot;LibDataBroker_DataObjectCreated&quot;, name, dataobj)
+		return dataobj
+	end
 end
 
-function lib:GetNameByDataObject(dataobject)
-	return namestorage[dataobject]
+if oldminor &lt; 1 then
+	function lib:DataObjectIterator()
+		return pairs(self.proxystorage)
+	end
+
+	function lib:GetDataObjectByName(dataobjectname)
+		return self.proxystorage[dataobjectname]
+	end
+
+	function lib:GetNameByDataObject(dataobject)
+		return self.namestorage[dataobject]
+	end
 end</diff>
      <filename>LibDataBroker-1.1/LibDataBroker-1.1.lua</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>bbe726e617e1e1c5ac609b0c408f7d169a621709</id>
    </parent>
  </parents>
  <author>
    <name>Tekkub</name>
    <email>tekkub@gmail.com</email>
  </author>
  <url>http://github.com/tekkub/picofps/commit/a304e5f9f1204e2a03298c874cd65f5ee46ae9fd</url>
  <id>a304e5f9f1204e2a03298c874cd65f5ee46ae9fd</id>
  <committed-date>2008-07-07T18:46:35-07:00</committed-date>
  <authored-date>2008-07-07T18:46:35-07:00</authored-date>
  <message>Update LDB to v1.1.3</message>
  <tree>fb76cb18625250275c677a9f94964e5e05970e34</tree>
  <committer>
    <name>Tekkub</name>
    <email>tekkub@gmail.com</email>
  </committer>
</commit>
