mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-24 22:22:21 +00:00
* Source/NSBundle.m ([NSBundle +initialize]): check for linked
framework in two passes, first collect all the framework classes, then add it. The previous routine failed to add all the frameworks. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@15236 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
4667c84855
commit
9acedeaf63
2 changed files with 39 additions and 3 deletions
|
@ -619,10 +619,40 @@ _bundle_load_callback(Class theClass, struct objc_category *theCategory)
|
|||
free(classes);
|
||||
}
|
||||
#else
|
||||
while ((class = objc_next_class(&state)))
|
||||
{
|
||||
[self _addFrameworkFromClass: class];
|
||||
{
|
||||
int i, numBufClasses = 10, numClasses = 0;
|
||||
Class *classes;
|
||||
|
||||
classes = malloc(sizeof(Class) * numBufClasses);
|
||||
|
||||
while ((class = objc_next_class(&state)))
|
||||
{
|
||||
int len = strlen (class->name);
|
||||
|
||||
if (len > 12 * sizeof(char)
|
||||
&& !strncmp("NSFramework_", class->name, 12))
|
||||
classes[numClasses++] = class;
|
||||
|
||||
if (numClasses == numBufClasses)
|
||||
{
|
||||
Class *ptr;
|
||||
|
||||
numClasses += 10;
|
||||
ptr = realloc(classes, sizeof(Class) * numClasses);
|
||||
|
||||
if (!ptr)
|
||||
break;
|
||||
|
||||
classes = ptr;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < numClasses; i++)
|
||||
{
|
||||
[self _addFrameworkFromClass: classes[i]];
|
||||
}
|
||||
free(classes);
|
||||
}
|
||||
#endif
|
||||
#if 0
|
||||
// _bundle_load_callback(class, NULL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue