calloc -> __objc_xcalloc, bzero instances
authorKresten Krab Thorup <krab@gcc.gnu.org>
Thu, 6 May 1993 09:23:58 +0000 (09:23 +0000)
committerKresten Krab Thorup <krab@gcc.gnu.org>
Thu, 6 May 1993 09:23:58 +0000 (09:23 +0000)
From-SVN: r4351

gcc/objc/class.c
gcc/objc/hash.c
gcc/objc/objects.c

index 97e108e..c9af0eb 100644 (file)
@@ -226,7 +226,7 @@ I implement posing by hiding SUPER_CLASS, creating new class and meta class
 Class*
 class_pose_as (Class* impostor, Class* super_class)
 {
-  Class* new_class = (Class*) calloc (1, sizeof (Class));
+  Class* new_class = (Class*) __objc_xcalloc (1, sizeof (Class));
   MetaClass* new_meta_class =
     (MetaClass*) __objc_xmalloc(sizeof (MetaClass));
   char *new_name = (char *)__objc_xmalloc ((size_t)strlen ((char*)super_class->name) + 12);
index 294d87b..2226a26 100644 (file)
@@ -51,13 +51,13 @@ hash_new (unsigned int size, hash_func_type hash_func,
 
   /* Allocate the cache structure.  calloc insures
      its initialization for default values.  */
-  cache = (cache_ptr) calloc (1, sizeof (struct cache));
+  cache = (cache_ptr) __objc_xcalloc (1, sizeof (struct cache));
   assert (cache);
 
   /* Allocate the array of buckets for the cache.
      calloc initializes all of the pointers to NULL.  */
   cache->node_table
-    = (node_ptr *) calloc (size, sizeof (node_ptr));
+    = (node_ptr *) __objc_xcalloc (size, sizeof (node_ptr));
   assert (cache->node_table);
 
   cache->size  = size;
@@ -96,7 +96,7 @@ void
 hash_add (cache_ptr *cachep, const void *key, void *value)
 {
   size_t indx = (*(*cachep)->hash_func)(*cachep, key);
-  node_ptr node = (node_ptr) calloc (1, sizeof (struct cache_node));
+  node_ptr node = (node_ptr) __objc_xcalloc (1, sizeof (struct cache_node));
 
 
   assert (node);
index 7574412..bd7a47e 100644 (file)
@@ -41,7 +41,10 @@ class_create_instance(Class* class)
   if (CLS_ISCLASS(class))
     new = (*_objc_object_alloc)(class);
   if (new!=nil)
-    new->class_pointer = class;
+    {
+      bzero (new, class->instance_size);
+      new->class_pointer = class;
+    }
   return new;
 }