aboutsummaryrefslogtreecommitdiff
path: root/libobjc
diff options
context:
space:
mode:
authorNicola Pero <nicola.pero@meta-innovation.com>2010-12-22 00:17:21 +0000
committerNicola Pero <nicola@gcc.gnu.org>2010-12-22 00:17:21 +0000
commit9fd553ccd98c72998a4e8e634ab4f05986d2ed10 (patch)
tree043bbd39f673b75b991f38fa6c983b3f34dbcb15 /libobjc
parent8637d320f1a1806dd9452c280a69f7daf3547fed (diff)
downloadgcc-9fd553ccd98c72998a4e8e634ab4f05986d2ed10.zip
gcc-9fd553ccd98c72998a4e8e634ab4f05986d2ed10.tar.gz
gcc-9fd553ccd98c72998a4e8e634ab4f05986d2ed10.tar.bz2
In libobjc/: 2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/: 2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com> * objc-private/objc-list.h: Reindented file. No code changes. * objc-private/sarray.h: Same change. From-SVN: r168150
Diffstat (limited to 'libobjc')
-rw-r--r--libobjc/ChangeLog5
-rw-r--r--libobjc/objc-private/objc-list.h53
-rw-r--r--libobjc/objc-private/sarray.h146
3 files changed, 112 insertions, 92 deletions
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index 9f37daf..e757302 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,5 +1,10 @@
2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com>
+ * objc-private/objc-list.h: Reindented file. No code changes.
+ * objc-private/sarray.h: Same change.
+
+2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com>
+
* objc-private/accessors.h: Removed 'extern "C"' guards. This
file is never compiled with C++.
* objc-private/hash.h: Same change.
diff --git a/libobjc/objc-private/objc-list.h b/libobjc/objc-private/objc-list.h
index 523919c..989b9c9 100644
--- a/libobjc/objc-private/objc-list.h
+++ b/libobjc/objc-private/objc-list.h
@@ -1,5 +1,5 @@
/* Generic single linked list to keep various information
- Copyright (C) 1993, 1994, 1996, 2009 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1996, 2009, 2010 Free Software Foundation, Inc.
Contributed by Kresten Krab Thorup.
This file is part of GCC.
@@ -23,68 +23,71 @@ a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-
#ifndef __GNU_OBJC_LIST_H
#define __GNU_OBJC_LIST_H
-struct objc_list {
+struct objc_list
+{
void *head;
struct objc_list *tail;
};
-/* Return a cons cell produced from (head . tail) */
-
+/* Return a cons cell produced from (head . tail). */
static inline struct objc_list*
-list_cons(void* head, struct objc_list* tail)
+list_cons (void* head, struct objc_list* tail)
{
struct objc_list* cell;
- cell = (struct objc_list*)objc_malloc(sizeof(struct objc_list));
+ cell = (struct objc_list*)objc_malloc (sizeof (struct objc_list));
cell->head = head;
cell->tail = tail;
return cell;
}
-/* Remove the element at the head by replacing it by its successor */
-
+/* Remove the element at the head by replacing it by its
+ successor. */
static inline void
-list_remove_head(struct objc_list** list)
+list_remove_head (struct objc_list** list)
{
if ((*list)->tail)
{
- struct objc_list* tail = (*list)->tail; /* fetch next */
- *(*list) = *tail; /* copy next to list head */
- objc_free(tail); /* free next */
+ /* Fetch next. */
+ struct objc_list* tail = (*list)->tail;
+
+ /* Copy next to list head. */
+ *(*list) = *tail;
+
+ /* Free next. */
+ objc_free (tail);
}
- else /* only one element in list */
+ else
{
- objc_free(*list);
+ /* Inly one element in list. */
+ objc_free (*list);
(*list) = 0;
}
}
-/* Map FUNCTION over all elements in LIST */
-
+/* Map FUNCTION over all elements in LIST. */
static inline void
-list_mapcar(struct objc_list* list, void(*function)(void*))
+list_mapcar (struct objc_list* list, void(*function)(void*))
{
- while(list)
+ while (list)
{
- (*function)(list->head);
+ (*function) (list->head);
list = list->tail;
}
}
-/* Free list (backwards recursive) */
-
+/* Free list (backwards recursive). */
static inline void
-list_free(struct objc_list* list)
+list_free (struct objc_list* list)
{
if(list)
{
- list_free(list->tail);
- objc_free(list);
+ list_free (list->tail);
+ objc_free (list);
}
}
diff --git a/libobjc/objc-private/sarray.h b/libobjc/objc-private/sarray.h
index 4d27fad..12fad92 100644
--- a/libobjc/objc-private/sarray.h
+++ b/libobjc/objc-private/sarray.h
@@ -1,5 +1,5 @@
/* Sparse Arrays for Objective C dispatch tables
- Copyright (C) 1993, 1995, 1996, 2004, 2009 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1995, 1996, 2004, 2009, 2010 Free Software Foundation, Inc.
Contributed by Kresten Krab Thorup.
This file is part of GCC.
@@ -26,8 +26,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifndef __sarray_INCLUDE_GNU
#define __sarray_INCLUDE_GNU
-#define OBJC_SPARSE2 /* 2-level sparse array */
-/* #define OBJC_SPARSE3 */ /* 3-level sparse array */
+#define OBJC_SPARSE2 /* 2-level sparse array. */
+/* #define OBJC_SPARSE3 */ /* 3-level sparse array. */
#ifdef OBJC_SPARSE2
extern const char* __objc_sparse2_id;
@@ -44,33 +44,33 @@ extern int nindices;
extern int narrays;
extern int idxsize;
-/* An unsigned integer of same size as a pointer */
-#define SIZET_BITS (sizeof(size_t)*8)
+/* An unsigned integer of same size as a pointer. */
+#define SIZET_BITS (sizeof (size_t) * 8)
-#if defined(__sparc__) || defined(OBJC_SPARSE2)
+#if defined (__sparc__) || defined (OBJC_SPARSE2)
#define PRECOMPUTE_SELECTORS
#endif
#ifdef OBJC_SPARSE3
-/* Buckets are 8 words each */
+/* Buckets are 8 words each. */
#define BUCKET_BITS 3
-#define BUCKET_SIZE (1<<BUCKET_BITS)
-#define BUCKET_MASK (BUCKET_SIZE-1)
+#define BUCKET_SIZE (1 << BUCKET_BITS)
+#define BUCKET_MASK (BUCKET_SIZE - 1)
-/* Indices are 16 words each */
+/* Indices are 16 words each. */
#define INDEX_BITS 4
-#define INDEX_SIZE (1<<INDEX_BITS)
-#define INDEX_MASK (INDEX_SIZE-1)
+#define INDEX_SIZE (1 << INDEX_BITS)
+#define INDEX_MASK (INDEX_SIZE - 1)
-#define INDEX_CAPACITY (BUCKET_SIZE*INDEX_SIZE)
+#define INDEX_CAPACITY (BUCKET_SIZE * INDEX_SIZE)
#else /* OBJC_SPARSE2 */
-/* Buckets are 32 words each */
+/* Buckets are 32 words each. */
#define BUCKET_BITS 5
-#define BUCKET_SIZE (1<<BUCKET_BITS)
-#define BUCKET_MASK (BUCKET_SIZE-1)
+#define BUCKET_SIZE (1 << BUCKET_BITS)
+#define BUCKET_MASK (BUCKET_SIZE - 1)
#endif /* OBJC_SPARSE2 */
@@ -78,51 +78,62 @@ typedef size_t sidx;
#ifdef PRECOMPUTE_SELECTORS
-struct soffset {
+struct soffset
+{
#ifdef OBJC_SPARSE3
- unsigned int unused : SIZET_BITS/4;
- unsigned int eoffset : SIZET_BITS/4;
- unsigned int boffset : SIZET_BITS/4;
- unsigned int ioffset : SIZET_BITS/4;
+ unsigned int unused : SIZET_BITS / 4;
+ unsigned int eoffset : SIZET_BITS / 4;
+ unsigned int boffset : SIZET_BITS / 4;
+ unsigned int ioffset : SIZET_BITS / 4;
#else /* OBJC_SPARSE2 */
#ifdef __sparc__
unsigned long boffset : (SIZET_BITS - 2) - BUCKET_BITS;
unsigned int eoffset : BUCKET_BITS;
unsigned int unused : 2;
#else
- unsigned int boffset : SIZET_BITS/2;
- unsigned int eoffset : SIZET_BITS/2;
+ unsigned int boffset : SIZET_BITS / 2;
+ unsigned int eoffset : SIZET_BITS / 2;
#endif
#endif /* OBJC_SPARSE2 */
};
-union sofftype {
+union sofftype
+{
struct soffset off;
sidx idx;
};
#endif /* not PRECOMPUTE_SELECTORS */
-union sversion {
+union sversion
+{
int version;
void *next_free;
};
-struct sbucket {
- void* elems[BUCKET_SIZE]; /* elements stored in array */
- union sversion version; /* used for copy-on-write */
+struct sbucket
+{
+ /* Elements stored in array. */
+ void* elems[BUCKET_SIZE];
+
+ /* Used for copy-on-write. */
+ union sversion version;
};
#ifdef OBJC_SPARSE3
-struct sindex {
+struct sindex
+{
struct sbucket* buckets[INDEX_SIZE];
- union sversion version; /* used for copy-on-write */
+
+ /* Used for copy-on-write. */
+ union sversion version;
};
#endif /* OBJC_SPARSE3 */
-struct sarray {
+struct sarray
+{
#ifdef OBJC_SPARSE3
struct sindex** indices;
struct sindex* empty_index;
@@ -130,49 +141,52 @@ struct sarray {
struct sbucket** buckets;
#endif /* OBJC_SPARSE2 */
struct sbucket* empty_bucket;
- union sversion version; /* used for copy-on-write */
+
+ /* Used for copy-on-write. */
+ union sversion version;
+
short ref_count;
struct sarray* is_copy_of;
size_t capacity;
};
-struct sarray* sarray_new(int, void* default_element);
-void sarray_free(struct sarray*);
-struct sarray* sarray_lazy_copy(struct sarray*);
-void sarray_realloc(struct sarray*, int new_size);
-void sarray_at_put(struct sarray*, sidx indx, void* elem);
-void sarray_at_put_safe(struct sarray*, sidx indx, void* elem);
+struct sarray* sarray_new (int, void* default_element);
+void sarray_free (struct sarray*);
+struct sarray* sarray_lazy_copy (struct sarray*);
+void sarray_realloc (struct sarray*, int new_size);
+void sarray_at_put (struct sarray*, sidx indx, void* elem);
+void sarray_at_put_safe (struct sarray*, sidx indx, void* elem);
-struct sarray* sarray_hard_copy(struct sarray*); /* ... like the name? */
-void sarray_remove_garbage(void);
+struct sarray* sarray_hard_copy (struct sarray*); /* ... like the name ? */
+void sarray_remove_garbage (void);
#ifdef PRECOMPUTE_SELECTORS
-/* Transform soffset values to ints and vica verca */
+/* Transform soffset values to ints and vice versa. */
static inline unsigned int
-soffset_decode(sidx indx)
+soffset_decode (sidx indx)
{
union sofftype x;
x.idx = indx;
#ifdef OBJC_SPARSE3
return x.off.eoffset
- + (x.off.boffset*BUCKET_SIZE)
- + (x.off.ioffset*INDEX_CAPACITY);
+ + (x.off.boffset * BUCKET_SIZE)
+ + (x.off.ioffset * INDEX_CAPACITY);
#else /* OBJC_SPARSE2 */
- return x.off.eoffset + (x.off.boffset*BUCKET_SIZE);
+ return x.off.eoffset + (x.off.boffset * BUCKET_SIZE);
#endif /* OBJC_SPARSE2 */
}
static inline sidx
-soffset_encode(size_t offset)
+soffset_encode (size_t offset)
{
union sofftype x;
- x.off.eoffset = offset%BUCKET_SIZE;
+ x.off.eoffset = offset % BUCKET_SIZE;
#ifdef OBJC_SPARSE3
- x.off.boffset = (offset/BUCKET_SIZE)%INDEX_SIZE;
- x.off.ioffset = offset/INDEX_CAPACITY;
+ x.off.boffset = (offset / BUCKET_SIZE) % INDEX_SIZE;
+ x.off.ioffset = offset / INDEX_CAPACITY;
#else /* OBJC_SPARSE2 */
- x.off.boffset = offset/BUCKET_SIZE;
+ x.off.boffset = offset / BUCKET_SIZE;
#endif
return (sidx)x.idx;
}
@@ -180,50 +194,48 @@ soffset_encode(size_t offset)
#else /* not PRECOMPUTE_SELECTORS */
static inline size_t
-soffset_decode(sidx indx)
+soffset_decode (sidx indx)
{
return indx;
}
static inline sidx
-soffset_encode(size_t offset)
+soffset_encode (size_t offset)
{
return offset;
}
#endif /* not PRECOMPUTE_SELECTORS */
-/* Get element from the Sparse array `array' at offset `indx' */
-
-static inline void* sarray_get(struct sarray* array, sidx indx)
+/* Get element from the Sparse array `array' at offset `indx'. */
+static inline void* sarray_get (struct sarray* array, sidx indx)
{
#ifdef PRECOMPUTE_SELECTORS
union sofftype x;
x.idx = indx;
#ifdef OBJC_SPARSE3
- return
- array->
- indices[x.off.ioffset]->
- buckets[x.off.boffset]->
- elems[x.off.eoffset];
+ return array->
+ indices[x.off.ioffset]->
+ buckets[x.off.boffset]->
+ elems[x.off.eoffset];
#else /* OBJC_SPARSE2 */
return array->buckets[x.off.boffset]->elems[x.off.eoffset];
#endif /* OBJC_SPARSE2 */
#else /* not PRECOMPUTE_SELECTORS */
#ifdef OBJC_SPARSE3
return array->
- indices[indx/INDEX_CAPACITY]->
- buckets[(indx/BUCKET_SIZE)%INDEX_SIZE]->
- elems[indx%BUCKET_SIZE];
+ indices[indx / INDEX_CAPACITY]->
+ buckets[(indx / BUCKET_SIZE) % INDEX_SIZE]->
+ elems[indx % BUCKET_SIZE];
#else /* OBJC_SPARSE2 */
- return array->buckets[indx/BUCKET_SIZE]->elems[indx%BUCKET_SIZE];
+ return array->buckets[indx / BUCKET_SIZE]->elems[indx % BUCKET_SIZE];
#endif /* not OBJC_SPARSE3 */
#endif /* not PRECOMPUTE_SELECTORS */
}
-static inline void* sarray_get_safe(struct sarray* array, sidx indx)
+static inline void* sarray_get_safe (struct sarray* array, sidx indx)
{
- if(soffset_decode(indx) < array->capacity)
- return sarray_get(array, indx);
+ if (soffset_decode (indx) < array->capacity)
+ return sarray_get (array, indx);
else
return (array->empty_bucket->elems[0]);
}