mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-26 02:01:03 +00:00
([MethodInvocation -invokeWithObject:]): Make it a
-subclassResponsibililty. ([MethodInvocation -initWithArgframe:selector:]): Raise an exception if we are unable to get a non-null selector type string. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1038 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2999ea826d
commit
42b53d068e
1 changed files with 11 additions and 1 deletions
|
@ -27,6 +27,10 @@
|
||||||
#include <objects/NSString.h>
|
#include <objects/NSString.h>
|
||||||
#include <objects/Connection.h>
|
#include <objects/Connection.h>
|
||||||
#include <objects/ConnectedCoder.h>
|
#include <objects/ConnectedCoder.h>
|
||||||
|
#include <Foundation/NSException.h>
|
||||||
|
|
||||||
|
/* xxx We are currently retaining the return value.
|
||||||
|
We shouldn't always do this. Make is an option. */
|
||||||
|
|
||||||
/* Deal with strrchr: */
|
/* Deal with strrchr: */
|
||||||
#if STDC_HEADERS || HAVE_STRING_H
|
#if STDC_HEADERS || HAVE_STRING_H
|
||||||
|
@ -494,6 +498,12 @@ my_method_get_next_argument (arglist_t argframe,
|
||||||
|
|
||||||
if (! (sel_type = sel_get_type (sel)) )
|
if (! (sel_type = sel_get_type (sel)) )
|
||||||
sel_type = sel_get_type ( sel_get_any_typed_uid (sel_get_name (sel)));
|
sel_type = sel_get_type ( sel_get_any_typed_uid (sel_get_name (sel)));
|
||||||
|
/* xxx Try harder to get this type by looking up the method in the target.
|
||||||
|
Hopefully the target can be found in the FRAME. */
|
||||||
|
if (!sel_type)
|
||||||
|
[NSException raise: @"SelectorWithoutType"
|
||||||
|
format: @"Couldn't find encoding type for selector %s.",
|
||||||
|
sel_get_name (sel)];
|
||||||
[self initWithArgframe: frame type: sel_type];
|
[self initWithArgframe: frame type: sel_type];
|
||||||
if (!frame)
|
if (!frame)
|
||||||
*sel_pointer = sel;
|
*sel_pointer = sel;
|
||||||
|
@ -624,7 +634,7 @@ my_method_get_next_argument (arglist_t argframe,
|
||||||
|
|
||||||
- (void) invokeWithObject: anObj
|
- (void) invokeWithObject: anObj
|
||||||
{
|
{
|
||||||
[self invokeWithTarget: anObj];
|
[self subclassResponsibility: _cmd];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (SEL) selector
|
- (SEL) selector
|
||||||
|
|
Loading…
Reference in a new issue