ObjFW  Check-in [ee5fd980f8]

Overview
Comment:Use lower 24 bits of the selector hash.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | runtime
Files: files | file ages | folders
SHA3-256: ee5fd980f8b600334409238e58de283edd33cb0872627fe138a92a4402e3f2cb
User & Date: js on 2012-05-07 08:22:32
Other Links: branch diff | manifest | tags
Context
2012-05-07
08:24
Abort when all selector slots are exhausted. check-in: 1315dd59d4 user: js tags: runtime
08:22
Use lower 24 bits of the selector hash. check-in: ee5fd980f8 user: js tags: runtime
2012-05-03
22:31
Check in configure whether to use assembly lookup. check-in: e382d2a8cb user: js tags: runtime
Changes

Modified src/runtime/selector.m from [e0ff7d4f75] to [687a3c992c].

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
	uint32_t hash, last;
	struct objc_selector *rsel = (struct objc_selector*)sel;
	const char *name;

	if (selectors == NULL)
		selectors = objc_sparsearray_new();

	hash = objc_hash_string(sel->name) >> 8;

	while (hash <= 0xFFFFFF &&
	    (name = objc_sparsearray_get(selectors, hash)) != NULL) {
		if (!strcmp(name, sel->name)) {
			rsel->uid = hash;
			return;
		}







|







31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
	uint32_t hash, last;
	struct objc_selector *rsel = (struct objc_selector*)sel;
	const char *name;

	if (selectors == NULL)
		selectors = objc_sparsearray_new();

	hash = objc_hash_string(sel->name) & 0xFFFFFF;

	while (hash <= 0xFFFFFF &&
	    (name = objc_sparsearray_get(selectors, hash)) != NULL) {
		if (!strcmp(name, sel->name)) {
			rsel->uid = hash;
			return;
		}