Annotation of GNUtools/cc/objc/misc.c, revision 1.1.1.1

1.1       root        1: /* GNU Objective C Runtime Miscellanious 
                      2:    Copyright (C) 1993 Free Software Foundation, Inc.
                      3: 
                      4: Author: Kresten Krab Thorup
                      5: 
                      6: This file is part of GNU CC.
                      7: 
                      8: GNU CC is free software; you can redistribute it and/or modify it under the
                      9:    terms of the GNU General Public License as published by the Free Software
                     10:    Foundation; either version 2, or (at your option) any later version.
                     11: 
                     12: GNU CC is distributed in the hope that it will be useful, but WITHOUT ANY
                     13:    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
                     14:    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
                     15:    details.
                     16: 
                     17: You should have received a copy of the GNU General Public License along with
                     18:    GNU CC; see the file COPYING.  If not, write to the Free Software
                     19:    Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
                     20: 
                     21: /* As a special exception, if you link this library with files compiled with
                     22:    GCC to produce an executable, this does not cause the resulting executable
                     23:    to be covered by the GNU General Public License. This exception does not
                     24:    however invalidate any other reasons why the executable file might be
                     25:    covered by the GNU General Public License.  */
                     26: 
                     27: #include "runtime.h"
                     28: 
                     29: void objc_error(id object, const char* fmt, va_list);
                     30: 
                     31: void (*_objc_error)(id, const char*, va_list) = objc_error;
                     32: 
                     33: #ifdef __alpha__
                     34: #include <stdlib.h>
                     35: extern int write (int, const char*, int);
                     36: extern size_t strlen (const char*);
                     37: #endif
                     38: 
                     39: void
                     40: objc_error(id object, const char* fmt, va_list ap)
                     41: {
                     42:   vfprintf (stderr, fmt, ap);
                     43:   abort ();
                     44: }
                     45: 
                     46: volatile void
                     47: objc_fatal(const char* msg)
                     48: {
                     49:   write(2, msg, (int)strlen((const char*)msg));
                     50:   abort();
                     51: }
                     52: 
                     53: void*
                     54: __objc_xmalloc(size_t size)
                     55: {
                     56:   void* res = (void*) malloc(size);
                     57:   if(!res)
                     58:     objc_fatal("Virtual memory exhausted\n");
                     59:   return res;
                     60: }
                     61: 
                     62: void*
                     63: __objc_xrealloc(void* mem, size_t size)
                     64: {
                     65:   void* res = (void*) realloc(mem, size);
                     66:   if(!res)
                     67:     objc_fatal("Virtual memory exhausted\n");
                     68:   return res;
                     69: }
                     70: 
                     71: void*
                     72: __objc_xcalloc(size_t nelem, size_t size)
                     73: {
                     74: #ifdef __alpha__
                     75:   extern bzero (void *, size_t);
                     76: #endif
                     77:   void* res = (void*)malloc(nelem * size);
                     78:   if(!res)
                     79:     objc_fatal("Virtual memory exhausted\n");
                     80:   bzero (res, nelem * size);
                     81:   return res;
                     82: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.