ObjFW  Check-in [2373a7777d]

Overview
Comment:Sometimes it's hard to make GCC and Clang happy at the same time...
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | runtime
Files: files | file ages | folders
SHA3-256: 2373a7777d265093fc8be309094031555706353734d5e1c0e698144944c5a2f2
User & Date: js on 2012-03-04 20:37:42
Other Links: branch diff | manifest | tags
Context
2012-03-04
20:47
Make OFBlock compile with the ObjFW runtime. check-in: 8002f3e823 user: js tags: runtime
20:37
Sometimes it's hard to make GCC and Clang happy at the same time... check-in: 2373a7777d user: js tags: runtime
20:37
Install runtime.h. check-in: 876f6cded5 user: js tags: runtime
Changes

Modified src/runtime/class.m from [6ae6224b73] to [283e2434aa].

78
79
80
81
82
83
84
85
86


87
88
89
90
91
92
93
94
95
96
97
98


99
100
101
102
103
104
105
78
79
80
81
82
83
84


85
86
87
88
89
90
91
92
93
94
95
96


97
98
99
100
101
102
103
104
105







-
-
+
+










-
-
+
+







	if (cls->superclass != Nil)
		dtable = objc_sparsearray_copy(cls->superclass->dtable);
	else
		dtable = objc_sparsearray_new();

	for (ml = cls->methodlist; ml != NULL; ml = ml->next)
		for (i = 0; i < ml->count; i++)
			objc_sparsearray_set(dtable,
			    (uint32_t)ml->methods[i].name, ml->methods[i].imp);
			objc_sparsearray_set(dtable, (uint32_t)
			    (uintptr_t)ml->methods[i].name, 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(dtable,
					    (uint32_t)ml->methods[j].name,
					objc_sparsearray_set(dtable, (uint32_t)
					    (uintptr_t)ml->methods[j].name,
					    ml->methods[j].imp);
		}
	}

	if (cls->dtable != NULL)
		objc_sparsearray_free_when_singlethreaded(cls->dtable);