ObjFW  Diff

Differences From Artifact [d79be2163d]:

To Artifact [375c6e97c6]:


412
413
414
415
416
417
418

419
420
421
422
423
424
425
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426







+







		 */
		actionrecords = ptr;
		displacement = (intptr_t)read_sleb128(&ptr);
		actionrecords += displacement;

		if (filter > 0 && !(actions & _UA_FORCE_UNWIND) && !foreign) {
			Class class;
			const char *className;
			uintptr_t c;
			const uint8_t *tmp;

#if defined(__arm__) || defined(__ARM__)
			tmp = lsda->typestable - (filter * 4);
			c = *(uintptr_t*)(void*)tmp;

433
434
435
436
437
438
439

440
441



442
443
444
445
446
447
448
434
435
436
437
438
439
440
441


442
443
444
445
446
447
448
449
450
451







+
-
-
+
+
+







			i = filter * size_for_encoding(lsda->typestable_enc);
			tmp = lsda->typestable - i;
			c = (uintptr_t)read_value(lsda->typestable_enc, &tmp);
			c = (uintptr_t)resolve_value(c, lsda->typestable_enc,
			    lsda->typestable - i, lsda->typestable_base);
#endif

			className = (const char*)c;
			if (c != 0)
				class = objc_getRequiredClass((const char*)c);

			if (className != NULL && *className != '\0')
				class = objc_getRequiredClass(className);
			else
				class = Nil;

			if (class_matches(class, e->object)) {
				*filtervalue = filter;
				return HANDLER_FOUND;
			}