* 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:
Mirko Viviani 2002-12-03 20:30:08 +00:00
parent 4667c84855
commit 9acedeaf63
2 changed files with 39 additions and 3 deletions

View file

@ -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);