Tolerate nil cwrelease methods for content

This commit is contained in:
rfm 2024-06-21 11:51:26 +01:00
parent 4ad8d6ba38
commit a08d7f8b0f

View file

@ -649,12 +649,15 @@ static Class GSInlineArrayClass;
id o = _contents_array[pos];
Class c = object_getClass(o);
if (c != last)
{
last = c;
rel = [o methodForSelector: @selector(release)];
}
(*rel)(o, @selector(release));
if (c)
{
if (c != last)
{
last = c;
rel = [o methodForSelector: @selector(release)];
}
(*rel)(o, @selector(release));
}
_contents_array[pos] = nil;
}
_version++;
@ -796,12 +799,15 @@ static Class GSInlineArrayClass;
id o = _contents_array[end];
Class c = object_getClass(o);
if (c != last)
{
last = c;
rel = [o methodForSelector: @selector(release)];
}
(*rel)(o, @selector(release));
if (c)
{
if (c != last)
{
last = c;
rel = [o methodForSelector: @selector(release)];
}
(*rel)(o, @selector(release));
}
_contents_array[end] = nil;
}