]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/object.cpp
minor changes and bug corrections (interface unchanged)
[wxWidgets.git] / src / common / object.cpp
index 4dc8b093b3f9a874c861f27605b466b2f116cf08..272e88a21f514df935fe6b40190accfe416371b9 100644 (file)
 #pragma hdrstop
 #endif
 
+#ifndef WX_PRECOMP
 #include "wx/hash.h"
+#include "wx/objstrm.h"
+#endif
 
 #include <string.h>
 #include <assert.h>
 
-#if (DEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
+#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
 #include "wx/memory.h"
 #endif
 
-#if DEBUG || USE_DEBUG_CONTEXT
+#if WXDEBUG || USE_DEBUG_CONTEXT
   // for wxObject::Dump
   #include <iostream.h>
 #endif
@@ -69,7 +72,7 @@ bool wxObject::IsKindOf(wxClassInfo *info)
     return FALSE;
 }
 
-#if DEBUG || USE_DEBUG_CONTEXT
+#if WXDEBUG || USE_DEBUG_CONTEXT
 void wxObject::Dump(ostream& str)
 {
   if (GetClassInfo() && GetClassInfo()->GetClassName())
@@ -79,7 +82,7 @@ void wxObject::Dump(ostream& str)
 }
 #endif
 
-#if DEBUG && USE_MEMORY_TRACING
+#if WXDEBUG && USE_MEMORY_TRACING
 
 #ifdef new
 #undef new
@@ -114,36 +117,6 @@ void wxObject::operator delete[] (void * buf)
  * Class info: provides run-time class type information.
  */
 
-#ifdef USE_STORABLE_CLASSES
-
-wxClassInfo::wxClassInfo(char *cName, char *baseName1, char *baseName2, int sz, wxObjectConstructorFn fn,
-     wxStorableConstructorFn stoFn )
-{
-  className = cName;
-  baseClassName1 = baseName1;
-  baseClassName2 = baseName2;
-
-  objectSize = sz;
-  objectConstructor = fn;
-  storableConstructor = stoFn;
-  
-  next = first;
-  first = this;
-
-  baseInfo1 = NULL;
-  baseInfo2 = NULL;
-}
-   
-wxObject* wxClassInfo::CreateObject( istream &stream, char *data )
-{
-  if (storableConstructor)
-    return (wxObject *)(*storableConstructor)( stream, data );
-  else
-    return NULL;
-}
-
-#else
-  
 wxClassInfo::wxClassInfo(char *cName, char *baseName1, char *baseName2, int sz, wxObjectConstructorFn constr)
 {
   className = cName;
@@ -160,8 +133,6 @@ wxClassInfo::wxClassInfo(char *cName, char *baseName1, char *baseName2, int sz,
   baseInfo2 = NULL;
 }
 
-#endif
-
 wxObject *wxClassInfo::CreateObject(void)
 {
   if (objectConstructor)
@@ -250,16 +221,10 @@ wxObject *wxCreateDynamicObject(char *name)
 
 #ifdef USE_STORABLE_CLASSES
 
-wxObject* wxCreateStoredObject( char *name, istream &stream, char *data )
+wxObject* wxCreateStoredObject( wxInputStream &stream )
 {
-  wxClassInfo *info = wxClassInfo::first;
-  while (info)
-  {
-    if (info->className && strcmp(info->className, name) == 0)
-      return info->CreateObject( stream, data );
-    info = info->next;
-  }
-  return NULL;
+  wxObjectInputStream obj_s(stream);
+  return obj_s.LoadObject();
 };
 
 #endif