mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Add a couple of warning logs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17097 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
4720dd6604
commit
bde21db4d6
3 changed files with 31 additions and 2 deletions
|
@ -23,6 +23,7 @@
|
|||
#include "Foundation/NSException.h"
|
||||
#include "Foundation/NSCoder.h"
|
||||
#include "Foundation/NSDistantObject.h"
|
||||
#include "Foundation/NSDebug.h"
|
||||
#include "gnustep/base/GSInvocation.h"
|
||||
#include <config.h>
|
||||
#include <objc/objc-api.h>
|
||||
|
@ -383,7 +384,6 @@ static IMP gs_objc_msg_forward (SEL sel)
|
|||
|
||||
if (!sel_type)
|
||||
{
|
||||
NSLog(@"Invalid selector %s (no type information)", sel_get_name (sel));
|
||||
sel_type = "@"; // Default to id return type
|
||||
}
|
||||
|
||||
|
@ -789,6 +789,20 @@ GSInvocationCallback (void *callback_data, va_alist args)
|
|||
{
|
||||
selector = sel_register_typed_name (runtimeName, receiverTypes);
|
||||
}
|
||||
if (runtimeTypes != 0)
|
||||
{
|
||||
/*
|
||||
* FIXME ... if we have a typed selector, it probably came
|
||||
* from the compiler, and the types of the proxied method
|
||||
* MUST match those that the compiler supplied on the stack
|
||||
* and the type it expects to retrieve from the stack.
|
||||
* We should therefore discriminate between signatures where
|
||||
* type qalifiers and sizes differ, and those where the
|
||||
* actual types differ.
|
||||
*/
|
||||
NSWarnFLog(@"Changed type signature '%s' to '%s' for '%s'",
|
||||
runtimeTypes, receiverTypes, runtimeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "Foundation/NSCoder.h"
|
||||
#include "Foundation/NSDistantObject.h"
|
||||
#include "Foundation/NSData.h"
|
||||
#include "Foundation/NSDebug.h"
|
||||
#include "gnustep/base/GSInvocation.h"
|
||||
#include <config.h>
|
||||
#include <objc/objc-api.h>
|
||||
|
@ -394,6 +395,20 @@ GSFFIInvocationCallback(ffi_cif *cif, void *retp, void **args, void *user)
|
|||
{
|
||||
selector = sel_register_typed_name (runtimeName, receiverTypes);
|
||||
}
|
||||
if (runtimeTypes != 0)
|
||||
{
|
||||
/*
|
||||
* FIXME ... if we have a typed selector, it probably came
|
||||
* from the compiler, and the types of the proxied method
|
||||
* MUST match those that the compiler supplied on the stack
|
||||
* and the type it expects to retrieve from the stack.
|
||||
* We should therefore discriminate between signatures where
|
||||
* type qalifiers and sizes differ, and those where the
|
||||
* actual types differ.
|
||||
*/
|
||||
NSWarnFLog(@"Changed type signature '%s' to '%s' for '%s'",
|
||||
runtimeTypes, receiverTypes, runtimeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -802,7 +802,7 @@ enum
|
|||
|
||||
if (sig == nil)
|
||||
{
|
||||
sig = [NSMethodSignature signatureWithObjCTypes: "*@:"];
|
||||
sig = [NSMethodSignature signatureWithObjCTypes: "r*@:"];
|
||||
RETAIN(sig);
|
||||
}
|
||||
return sig;
|
||||
|
|
Loading…
Reference in a new issue