* Removed all Id tags.
[cacao.git] / src / vmcore / linker.h
index efd6b2ed2721664b0ed62e1f17e25e56f0e90f0a..a84d84c6b9d97e12ed96892fcfc9ea3498b612d5 100644 (file)
@@ -22,7 +22,6 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: linker.h 7246 2007-01-29 18:49:05Z twisti $
 */
 
 
@@ -82,22 +81,22 @@ typedef struct primitivetypeinfo primitivetypeinfo;
    interfacetablelength = 4
 
                   | ...       |            +----------+
-                     +-----------+            | method 2 |---> method z
-                     | class     |            | method 1 |---> method y
-                     +-----------+            | method 0 |---> method x
-                     | ivftbl  0 |----------> +----------+
-       vftblptr ---> +-----------+
+                  +-----------+            | method 2 |---> method z
+                  | class     |            | method 1 |---> method y
+                  +-----------+            | method 0 |---> method x
+                  | ivftbl  0 |----------> +----------+
+    vftblptr ---> +-----------+
                   | ivftbl -1 |--> NULL    +----------+
                   | ivftbl -2 |--> NULL    | method 1 |---> method x
                   | ivftbl -3 |-----+      | method 0 |---> method a
                   +-----------+     +----> +----------+
      
                               +---------------+
-                                 | length 3 = 2  |
-                                 | length 2 = 0  |
-                                 | length 1 = 0  |
-                                 | length 0 = 3  |
-       interfacevftbllength ---> +---------------+
+                              | length 3 = 2  |
+                              | length 2 = 0  |
+                              | length 1 = 0  |
+                              | length 0 = 3  |
+    interfacevftbllength ---> +---------------+
 
 *******************************************************************************/
 
@@ -134,26 +133,12 @@ struct arraydescriptor {
 };
 
 
-/* primitivetypeinfo **********************************************************/
-
-struct primitivetypeinfo {
-       classinfo *class_wrap;               /* class for wrapping primitive type */
-       classinfo *class_primitive;          /* primitive class                   */
-       char      *wrapname;                 /* name of class for wrapping        */
-       char       typesig;                  /* one character type signature      */
-       char      *name;                     /* name of primitive class           */
-       char      *arrayname;                /* name of primitive array class     */
-       classinfo *arrayclass;               /* primitive array class             */
-       vftbl_t   *arrayvftbl;               /* vftbl of primitive array class    */
-};
-
-
 /* global variables ***********************************************************/
 
-/* This array can be indexed by the PRIMITIVETYPE_ and ARRAYTYPE_ constants   */
-/* (except ARRAYTYPE_OBJECT).                                                 */
+/* This lock must be taken while renumbering classes or while atomically      */
+/* accessing classes.                                                         */
 
-extern primitivetypeinfo primitivetype_table[PRIMITIVETYPE_COUNT];
+extern java_object_t *linker_classrenumber_lock;
 
 
 /* function prototypes ********************************************************/