]> git.saurik.com Git - apple/xnu.git/blobdiff - libkern/c++/OSObject.cpp
xnu-2782.1.97.tar.gz
[apple/xnu.git] / libkern / c++ / OSObject.cpp
index 7da83e9a137f158ad23ff84322305e07bdf5ad59..0dc95ed5543fd6cd99dbdd76de199909c40fac4f 100644 (file)
@@ -28,6 +28,7 @@
 /* OSObject.cpp created by gvdl on Fri 1998-11-17 */
 
 #include <libkern/c++/OSObject.h>
+#include <libkern/c++/OSString.h>
 #include <libkern/c++/OSArray.h>
 #include <libkern/c++/OSSerialize.h>
 #include <libkern/c++/OSLib.h>
@@ -241,14 +242,19 @@ void OSObject::release(int when) const
 
 bool OSObject::serialize(OSSerialize *s) const
 {
-    if (s->previouslySerialized(this)) return true;
+    char cstr[128];
+    bool ok;
 
-    if (!s->addXMLStartTag(this, "string")) return false;
+    snprintf(cstr, sizeof(cstr), "%s is not serializable", getClassName(this));
 
-    if (!s->addString(getClassName(this))) return false;
-    if (!s->addString(" is not serializable")) return false;
-    
-    return s->addXMLEndTag("string");
+    OSString * str;
+    str = OSString::withCStringNoCopy(cstr);
+    if (!str) return false;
+
+    ok = str->serialize(s);
+    str->release();
+
+    return (ok);
 }