History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg2/java/io/ObjectStreamClass_L.b (1 of 18352 files). Show all

Unified · Split

java/pkg2/java/io/ObjectStreamClass_L.b+164−0
@@ -0,0 +1,164 @@
1implement ObjectStreamClass_L;
2
3# javal v1.3 generated file: edit with care
4
5include "jni.m";
6 jni : JNI;
7 ClassModule,
8 JString,
9 JArray,
10 JArrayI,
11 JArrayC,
12 JArrayB,
13 JArrayS,
14 JArrayJ,
15 JArrayF,
16 JArrayD,
17 JArrayZ,
18 JArrayJObject,
19 JArrayJClass,
20 JArrayJString,
21 JClass,
22 JThread,
23 JObject : import jni;
24
25#>> extra pre includes here
26 sys : import jni;
27 str : import jni;
28 FALSE : import jni;
29 TRUE : import jni;
30#<<
31
32include "ObjectStreamClass_L.m";
33
34#>> extra post includes here
35include "workdir.m";
36include "regex.m";
37str_mod : String;
38Value : import jni;
39cast : Cast;
40#<<
41
42init( jni_p : JNI )
43{
44 # save java native inteface mod instance
45 jni = jni_p;
46 #>>extra initialization here
47 sys = jni->sys;
48 str_mod = jni->str;
49 cast = jni->CastMod();
50 #<<
51}
52
53getClassAccess_rClass_I( p0 : JClass) : int
54{#>>
55 return (jni->GetClassFlags(p0) & JNI->ACC_WRITTEN_FLAGS);
56}#<<
57
58getMethodSignatures_rClass_aString( p0 : JClass) : JArrayJString
59{#>>
60 # Return an array of Strings containing the method names and signatures.
61 return (jni->GetMethodSignatures(p0, 0));
62}#<<
63
64getMethodAccess_rClass_rString_I( p0 : JClass,p1 : JString) : int
65{#>>
66 return (jni->GetMethodFlags(p0, p1.str) & JNI->ACC_WRITTEN_FLAGS);
67}#<<
68
69getFieldSignatures_rClass_aString( p0 : JClass) : JArrayJString
70{#>>
71 # Return an array of Strings containing the field names and signatures.
72 return (jni->GetFieldSignatures(p0, 0));
73}#<<
74
75getFieldAccess_rClass_rString_I( p0 : JClass,p1 : JString) : int
76{#>>
77 return (jni->GetFieldFlags(p0, p1.str) & JNI->ACC_WRITTEN_FLAGS);
78}#<<
79
80getFields0_rClass_aObjectStreamField( this : ref ObjectStreamClass_obj, p0 : JClass) : JArrayJObject
81{#>>
82 #
83 # Return an array of ObjectStreamField objects for each non-static and
84 # non-transient field of the specified class. First find and load the
85 # ObjectStreamField class.
86 #
87 junk := this;
88 cl_data := jni->FindClass("java/io/ObjectStreamField");
89 if (cl_data == nil)
90 jni->FatalError("ObjectStreamClass could not load java/io/ObjectStreamField");
91
92 #
93 # Get a list of all non-static and non transient fields of this class. If there are
94 # non, jni->GetFieldSignatures() returns an array of length 0.
95 #
96 fields_n_sigs := jni->GetFieldSignatures(p0, (JNI->ACC_STATIC|JNI->ACC_TRANSIENT));
97
98 MyValueArray := array[4] of ref Value;
99 MyObjectArray := array[len fields_n_sigs.ary] of JObject;
100
101 #
102 # for each non-static and non-transient fields of this class...
103 # call constructor for ObjectStreamField as follows
104 # ObjectStreamField(n, sig, o, t)
105 # where n is field name, sig is first byte of field signature
106 # o is index into class field table and if sig != [ or L,
107 # t is NULL. If sig is [ or L, t is signature.
108 # For each of those constructors that are created, stuff them into
109 # an array entry.
110 #
111 for (i:=0; i < len fields_n_sigs.ary; i++) {
112 #
113 # Each entry in fields_n_sigs.ary is of the format <name> <sig> where name is
114 # the name of the field and signature is its full signature. Seperate them
115 # out and format a call instruction to call the constructor for ObjectStreamField.
116 #
117 (name, full_sig) := str_mod->splitl((fields_n_sigs.ary[i]).str, " ");
118 full_sig = full_sig[1:];
119
120 MyValueArray[0] = ref Value.TObject(cast->FromJString(jni->NewString(name)));
121 MyValueArray[1] = ref Value.TChar(full_sig[0]);
122 # NOT offset of field in object (but does it matter)???
123 MyValueArray[2] = ref Value.TInt(i);
124 if ((full_sig[0] == 'L') || (full_sig[0] == '['))
125 MyValueArray[3] = ref Value.TObject(cast->FromJString(jni->NewString(full_sig)));
126 else
127 MyValueArray[3] = ref Value.TObject(nil);
128
129 jObj := jni->AllocObject(cl_data);
130 (ret, ok) := jni->CallMethod(jObj, "<init>", "(Ljava/lang/String;CILjava/lang/String;)V", MyValueArray);
131 if (ok != JNI->OK)
132 jni->FatalError("ObjectStreamClass could not create ObjectStreamField");
133 #
134 # make an array of these created objects.
135 #
136 MyObjectArray[i] = jObj;
137 }
138 #
139 # Finally, return the full array.
140 #
141 jary := jni->MkAObject(MyObjectArray);
142 jary.class = cl_data;
143 return jary;
144}#<<
145
146getSerialVersionUID_rClass_J( p0 : JClass) : big
147{#>>
148 ret : big;
149 val : ref Value;
150 val = jni->GetStaticField(p0.class, "serialVersionUID", "J");
151 if (val != nil)
152 ret = val.Long();
153 else
154 ret = big 0;
155 return ret;
156}#<<
157
158hasWriteObject_rClass_Z( p0 : JClass) : int
159{#>>
160 if (jni->GetMethodFlags(p0, "writeObject (Ljava/io/ObjectOutputStream;)V") != 0)
161 return JNI->TRUE;
162 else
163 return JNI->FALSE;
164}#<<