aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKresten Krab Thorup <krab@gcc.gnu.org>1993-05-05 13:51:43 +0000
committerKresten Krab Thorup <krab@gcc.gnu.org>1993-05-05 13:51:43 +0000
commitc8266dd238bf96738d2b2cb05b1d271492d61a6b (patch)
tree0ddbd0e641e0b4a9f86a3a60febf01099f968e83 /gcc
parent27f581c390ebb6141dffda7cb55c979fa76032a0 (diff)
downloadgcc-c8266dd238bf96738d2b2cb05b1d271492d61a6b.zip
gcc-c8266dd238bf96738d2b2cb05b1d271492d61a6b.tar.gz
gcc-c8266dd238bf96738d2b2cb05b1d271492d61a6b.tar.bz2
(-shouldNotImplement:): New method
(-shouldNotImplement:): New method (-free): assign [FREED class] to isa when freeing From-SVN: r4332
Diffstat (limited to 'gcc')
-rw-r--r--gcc/objc/Object.m11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/objc/Object.m b/gcc/objc/Object.m
index 79bbdd8..e6c90ec 100644
--- a/gcc/objc/Object.m
+++ b/gcc/objc/Object.m
@@ -27,6 +27,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "objc/Protocol.h"
#include "objc/objc-api.h"
+@class FREED;
+
#include "gstdarg.h"
extern void (*_objc_error)(id object, const char *format, va_list);
@@ -58,6 +60,10 @@ extern int errno;
- free
{
+ static Class* freedClass = 0;
+ if (!freedClass)
+ freedClass = [FREED class];
+ isa = freedClass;
return object_dispose(self);
}
@@ -293,6 +299,11 @@ extern int errno;
object_get_class_name(self), sel_get_name(aSel)];
}
+- shouldNotImplement
+{
+ return [self error:"should not implement %s", sel_get_name(aSel)];
+}
+
- error:(const char *)aString, ...
{
#define FMT "error: %s (%s)\n%s\n"