Overview
| Comment: | Remove useless thread-checking. |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | runtime |
| Files: | files | file ages | folders |
| SHA3-256: |
555445ce0a7f88b64c4f298416477004 |
| User & Date: | js on 2012-04-21 10:56:21 |
| Other Links: | branch diff | manifest | tags |
Context
|
2012-04-21
| ||
| 11:31 | Merge branch 'master' into runtime (check-in: 676e09bf77 user: js tags: runtime) | |
| 10:56 | Remove useless thread-checking. (check-in: 555445ce0a user: js tags: runtime) | |
| 10:35 | Merge branch 'master' into runtime (check-in: e5d2a616de user: js tags: runtime) | |
Changes
Modified src/runtime/class.m from [5cd9de1e6b] to [a1cee08383].
| ︙ | ︙ | |||
95 96 97 98 99 100 101 |
}
void
objc_update_dtable(Class cls)
{
struct objc_method_list *ml;
struct objc_category **cats;
| < > | > | | | > | | < < < < < | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
}
void
objc_update_dtable(Class cls)
{
struct objc_method_list *ml;
struct objc_category **cats;
unsigned int i;
if (cls->dtable == NULL) {
if (cls->superclass != Nil)
cls->dtable =
objc_sparsearray_copy(cls->superclass->dtable);
else
cls->dtable = objc_sparsearray_new();
}
for (ml = cls->methodlist; ml != NULL; ml = ml->next)
for (i = 0; i < ml->count; i++)
objc_sparsearray_set(cls->dtable,
(uint32_t)ml->methods[i].sel.uid,
ml->methods[i].imp);
if ((cats = objc_categories_for_class(cls)) != NULL) {
for (i = 0; cats[i] != NULL; i++) {
unsigned int j;
ml = (cls->info & OBJC_CLASS_INFO_CLASS ?
cats[i]->instance_methods : cats[i]->class_methods);
for (; ml != NULL; ml = ml->next)
for (j = 0; j < ml->count; j++)
objc_sparsearray_set(cls->dtable,
(uint32_t)ml->methods[j].sel.uid,
ml->methods[j].imp);
}
}
if (cls->subclass_list != NULL)
for (i = 0; cls->subclass_list[i] != NULL; i++)
objc_update_dtable(cls->subclass_list[i]);
}
static void
add_subclass(Class cls)
|
| ︙ | ︙ |
Modified src/runtime/sparsearray.m from [71ecf956f3] to [a773bc4c5d].
| ︙ | ︙ | |||
156 157 158 159 160 161 162 | free(s->buckets[i]); } free(s); } | < < < < < < < < < < < < < < < < < < < < | 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
free(s->buckets[i]);
}
free(s);
}
void
objc_sparsearray_cleanup(void)
{
if (empty_level2 != NULL)
free(empty_level2);
if (empty_level3 != NULL)
free(empty_level3);
empty_level2 = NULL;
empty_level3 = NULL;
}
|
Modified src/runtime/threading.m from [7dca0646d4] to [2d30e1cc90].
| ︙ | ︙ | |||
19 20 21 22 23 24 25 | #include <stdio.h> #include <stdlib.h> #import "runtime.h" #import "runtime-private.h" static objc_mutex_t global_mutex; | < < < | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <stdio.h>
#include <stdlib.h>
#import "runtime.h"
#import "runtime-private.h"
static objc_mutex_t global_mutex;
BOOL
objc_mutex_new(objc_mutex_t *mutex)
{
if (!of_mutex_new(&mutex->mutex ))
return NO;
|
| ︙ | ︙ | |||
93 94 95 96 97 98 99 |
void
objc_global_mutex_free(void)
{
if (!objc_mutex_free(&global_mutex))
ERROR("Failed to free global mutex!");
}
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 90 91 92 93 94 95 96 |
void
objc_global_mutex_free(void)
{
if (!objc_mutex_free(&global_mutex))
ERROR("Failed to free global mutex!");
}
|