removed native method
[IRC.git] / Robust / src / Runtime / runtime.c
1 #include "runtime.h"
2 #include "structdefs.h"
3 extern int classsize[];
4 #ifdef BOEHM_GC
5 #include "gc.h"
6 #define FREEMALLOC(x) GC_malloc(x)
7 #else
8 #define FREEMALLOC(x) calloc(1,x)
9 #endif
10
11 int ___Object______hashcode____(struct ___Object___ * ___this___) {
12   return (int) ___this___;
13 }
14
15 void ___System______printString____L___String___(struct ___String___ * s) {
16     struct ArrayObject * chararray=s->___string___;
17     int i;
18     for(i=0;i<chararray->___length___;i++) {
19         short s= ((short *)(((char *)& chararray->___length___)+sizeof(int)))[i];
20         putchar(s);
21     }
22 }
23
24
25 void * allocate_new(int type) {
26   void * v=FREEMALLOC(classsize[type]);
27   *((int *)v)=type;
28   return v;
29 }
30
31 void * allocate_newarray(int type, int length) {
32   void * v=FREEMALLOC(sizeof(struct ArrayObject)+length*classsize[type]);
33   *((int *)v)=type;
34   ((struct ArrayObject *)v)->___length___=length;
35   return v;
36 }
37
38 struct ___String___ * NewString(char *str,int length) {
39   struct ArrayObject * chararray=allocate_newarray(CHARARRAYTYPE, length);
40   struct ___String___ * strobj=allocate_new(STRINGTYPE);
41   int i;
42   strobj->___string___=chararray;
43   for(i=0;i<length;i++) {
44     ((short *)(((char *)& chararray->___length___)+sizeof(int)))[i]=(short)str[i];  }
45   return strobj;
46 }
47
48 void failedboundschk() {
49   printf("Array out of bounds\n");
50   exit(-1);
51 }
52
53 void failednullptr() {
54   printf("Dereferenced a null pointer\n");
55   exit(-1);
56 }