mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +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
844e785f3c
commit
272ac50286
1 changed files with 11 additions and 1 deletions
|
@ -27,6 +27,10 @@
|
|||
#include <objects/NSString.h>
|
||||
#include <objects/Connection.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: */
|
||||
#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)) )
|
||||
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];
|
||||
if (!frame)
|
||||
*sel_pointer = sel;
|
||||
|
@ -624,7 +634,7 @@ my_method_get_next_argument (arglist_t argframe,
|
|||
|
||||
- (void) invokeWithObject: anObj
|
||||
{
|
||||
[self invokeWithTarget: anObj];
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
- (SEL) selector
|
||||
|
|
Loading…
Reference in a new issue