]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/objstrm.cpp
Blob support fixes - still does not work, but getting there
[wxWidgets.git] / src / common / objstrm.cpp
index 824cd28fa666acbfbb802ab8b34e720221a0cf1a..e0156b200dd51ba569bc88bb5c04f5b88b5621e8 100644 (file)
@@ -8,10 +8,20 @@
 // Copyright:   (c) 1998 Guilhem Lavaux
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) 1998 Guilhem Lavaux
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
+
 #ifdef __GNUG__
 #ifdef __GNUG__
-#pragma implementation "objstrm.h"
+    #pragma implementation "objstrm.h"
 #endif
 
 #endif
 
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+  #pragma hdrstop
+#endif
+
+#if wxUSE_SERIAL && wxUSE_STREAMS
+
 #include "wx/object.h"
 #include "wx/objstrm.h"
 #include "wx/datstrm.h"
 #include "wx/object.h"
 #include "wx/objstrm.h"
 #include "wx/datstrm.h"
@@ -36,7 +46,7 @@ wxString wxObjectOutputStream::GetObjectName(wxObject *obj)
 {
   wxString name;
 
 {
   wxString name;
 
-  name.Printf("%x", (unsigned long)obj);
+  name.Printf(wxT("%x"), (unsigned long)obj);
   return name;
 }
 
   return name;
 }
 
@@ -49,13 +59,16 @@ void wxObjectOutputStream::WriteObjectDef(wxObjectStreamInfo& info)
   if (info.duplicate) {
     data_s.WriteString(TAG_DUPLICATE_OBJECT);
     data_s.WriteString(GetObjectName(info.object));
   if (info.duplicate) {
     data_s.WriteString(TAG_DUPLICATE_OBJECT);
     data_s.WriteString(GetObjectName(info.object));
+    wxPrintf(wxT("info.object (dup %s)\n"), info.object->GetClassInfo()->GetClassName());
     return;
   }
 
   if (info.object) {
     data_s.WriteString(info.object->GetClassInfo()->GetClassName());
     return;
   }
 
   if (info.object) {
     data_s.WriteString(info.object->GetClassInfo()->GetClassName());
+    wxPrintf(wxT("info.object (%s)\n"), info.object->GetClassInfo()->GetClassName());
   } else {
     data_s.WriteString(TAG_EMPTY_OBJECT);
   } else {
     data_s.WriteString(TAG_EMPTY_OBJECT);
+    wxPrintf(wxT("info.object (NULL)\n"));
     return;
   }
 
     return;
   }
 
@@ -160,6 +173,7 @@ bool wxObjectOutputStream::SaveObject(wxObject& obj)
 wxObjectInputStream::wxObjectInputStream(wxInputStream& s)
   : wxFilterInputStream(s)
 {
 wxObjectInputStream::wxObjectInputStream(wxInputStream& s)
   : wxFilterInputStream(s)
 {
+  m_secondcall = FALSE;
 }
 
 wxObject *wxObjectInputStream::SolveName(const wxString& name) const
 }
 
 wxObject *wxObjectInputStream::SolveName(const wxString& name) const
@@ -200,7 +214,7 @@ wxObject *wxObjectInputStream::GetChild(int no) const
   wxObjectStreamInfo *info;
 
   if (m_current_info->children_removed >= m_current_info->n_children)
   wxObjectStreamInfo *info;
 
   if (m_current_info->children_removed >= m_current_info->n_children)
-    return NULL;
+    return (wxObject *) NULL;
 
   node = m_current_info->children.Nth(m_current_info->children_removed+no);
 
 
   node = m_current_info->children.Nth(m_current_info->children_removed+no);
 
@@ -230,13 +244,13 @@ bool wxObjectInputStream::ReadObjectDef(wxObjectStreamInfo *info)
 
   class_name = data_s.ReadString();
   info->children_removed = 0;
 
   class_name = data_s.ReadString();
   info->children_removed = 0;
+  info->n_children = 0;
 
   if (class_name == TAG_EMPTY_OBJECT)
     info->object = (wxObject *) NULL;
   else if (class_name == TAG_DUPLICATE_OBJECT) {
     info->object_name = data_s.ReadString();
     info->object = SolveName(info->object_name);
 
   if (class_name == TAG_EMPTY_OBJECT)
     info->object = (wxObject *) NULL;
   else if (class_name == TAG_DUPLICATE_OBJECT) {
     info->object_name = data_s.ReadString();
     info->object = SolveName(info->object_name);
-    info->n_children = 0;
   } else {
     info->object_name = data_s.ReadString();
     info->object = wxCreateDynamicObject( WXSTRINGCAST class_name);
   } else {
     info->object_name = data_s.ReadString();
     info->object = wxCreateDynamicObject( WXSTRINGCAST class_name);
@@ -307,3 +321,6 @@ wxObject *wxObjectInputStream::LoadObject()
 
   return object;
 }
 
   return object;
 }
+
+#endif // wxUSE_SERIAL && wxUSE_STREAMS
+