Mercurial > hg > truffle
annotate truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java @ 22548:6b76a24fffbd default tip
Use all variables: a, b, u,v and x, y
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Thu, 14 Jan 2016 14:20:57 +0100 |
parents | cda3eebfa777 |
children |
rev | line source |
---|---|
7267
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
1 /* |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
4 * |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
11279
494b818b527c
Adding "Classpath" exception to the classes in the com.oracle.truffle.api and the com.oracle.truffle.api.dsl package.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
9321
diff
changeset
|
7 * published by the Free Software Foundation. Oracle designates this |
494b818b527c
Adding "Classpath" exception to the classes in the com.oracle.truffle.api and the com.oracle.truffle.api.dsl package.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
9321
diff
changeset
|
8 * particular file as subject to the "Classpath" exception as provided |
494b818b527c
Adding "Classpath" exception to the classes in the com.oracle.truffle.api and the com.oracle.truffle.api.dsl package.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
9321
diff
changeset
|
9 * by Oracle in the LICENSE file that accompanied this code. |
7267
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
10 * |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
11 * This code is distributed in the hope that it will be useful, but WITHOUT |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
14 * version 2 for more details (a copy is included in the LICENSE file that |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
15 * accompanied this code). |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
16 * |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
17 * You should have received a copy of the GNU General Public License version |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
18 * 2 along with this work; if not, write to the Free Software Foundation, |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
20 * |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
22 * or visit www.oracle.com if you need additional information or have any |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
23 * questions. |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
24 */ |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
25 package com.oracle.truffle.api.frame; |
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
26 |
22157
dc83cc1f94f2
Using fully qualified imports
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
27 import com.oracle.truffle.api.CompilerDirectives; |
16052
80b0bd9e29c8
FrameSlot: fix import
Bernhard Urban <bernhard.urban@jku.at>
parents:
12644
diff
changeset
|
28 import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
29 |
7267
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
30 /** |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
31 * A slot in a {@link Frame} and {@link FrameDescriptor} that can store a value of a given type. |
7267
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
32 */ |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
33 public final class FrameSlot implements Cloneable { |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
34 |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
35 private final FrameDescriptor descriptor; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
36 private final Object identifier; |
16727
9d55732d0880
additional info field on FrameSlot nodes (for language-specific use)
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16052
diff
changeset
|
37 private final Object info; |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
38 private final int index; |
16052
80b0bd9e29c8
FrameSlot: fix import
Bernhard Urban <bernhard.urban@jku.at>
parents:
12644
diff
changeset
|
39 @CompilationFinal private FrameSlotKind kind; |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7267
diff
changeset
|
40 |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
41 /** |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
42 * @deprecated use |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
43 * {@link FrameDescriptor#addFrameSlot(java.lang.Object, java.lang.Object, com.oracle.truffle.api.frame.FrameSlotKind)} |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
44 * to create new instance of the slot. This method will be made package private in |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
45 * the future. |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
46 */ |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
47 @Deprecated |
16727
9d55732d0880
additional info field on FrameSlot nodes (for language-specific use)
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16052
diff
changeset
|
48 public FrameSlot(FrameDescriptor descriptor, Object identifier, Object info, int index, FrameSlotKind kind) { |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
49 this(descriptor, identifier, info, kind, index); |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
50 } |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
51 |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
52 FrameSlot(FrameDescriptor descriptor, Object identifier, Object info, FrameSlotKind kind, int index) { |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
53 this.descriptor = descriptor; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
54 this.identifier = identifier; |
16727
9d55732d0880
additional info field on FrameSlot nodes (for language-specific use)
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16052
diff
changeset
|
55 this.info = info; |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
56 this.index = index; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
57 this.kind = kind; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
58 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7267
diff
changeset
|
59 |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
60 /** |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
61 * Identifier of the slot. |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
62 * |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
63 * @return value as specified in {@link FrameDescriptor#addFrameSlot(java.lang.Object)} |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
64 * parameter |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
65 */ |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
66 public Object getIdentifier() { |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
67 return identifier; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
68 } |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
69 |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
70 /** |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
71 * Information about the slot. |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
72 * |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
73 * @return value as specified as second parameter of |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
74 * {@link FrameDescriptor#addFrameSlot(java.lang.Object, java.lang.Object, com.oracle.truffle.api.frame.FrameSlotKind)} |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
75 */ |
16727
9d55732d0880
additional info field on FrameSlot nodes (for language-specific use)
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16052
diff
changeset
|
76 public Object getInfo() { |
9d55732d0880
additional info field on FrameSlot nodes (for language-specific use)
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16052
diff
changeset
|
77 return info; |
9d55732d0880
additional info field on FrameSlot nodes (for language-specific use)
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16052
diff
changeset
|
78 } |
9d55732d0880
additional info field on FrameSlot nodes (for language-specific use)
Lukas Stadler <lukas.stadler@oracle.com>
parents:
16052
diff
changeset
|
79 |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
80 /** |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
81 * Index of the slot in the {@link FrameDescriptor}. |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
82 * |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
83 * @return position of the slot computed after |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
84 * {@link FrameDescriptor#addFrameSlot(java.lang.Object, java.lang.Object, com.oracle.truffle.api.frame.FrameSlotKind) |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
85 * adding} it. |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
86 */ |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
87 public int getIndex() { |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
88 return index; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
89 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7267
diff
changeset
|
90 |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
91 /** |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
92 * Kind of the slot. Specified either at |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
93 * {@link FrameDescriptor#addFrameSlot(java.lang.Object, com.oracle.truffle.api.frame.FrameSlotKind) |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
94 * creation time} or updated via {@link #setKind(com.oracle.truffle.api.frame.FrameSlotKind)} |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
95 * method. |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
96 * |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
97 * @return current kind of this slot |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
98 */ |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
99 public FrameSlotKind getKind() { |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
100 return kind; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
101 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7267
diff
changeset
|
102 |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
103 /** |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
104 * Changes the kind of this slot. Change of the slot kind is done on <em>slow path</em> and |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
105 * invalidates assumptions about {@link FrameDescriptor#createVersion() version} of |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
106 * {@link #getFrameDescriptor() associated descriptor}. |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
107 * |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
108 * @param kind new kind of the slot |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
109 */ |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
110 public void setKind(final FrameSlotKind kind) { |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
111 if (this.kind != kind) { |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
112 CompilerDirectives.transferToInterpreter(); |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
113 this.kind = kind; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
114 this.descriptor.updateVersion(); |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
115 } |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
116 } |
7530
5e3d1a68664e
applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents:
7267
diff
changeset
|
117 |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
118 @Override |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
119 public String toString() { |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
120 return "[" + index + "," + identifier + "," + kind + "]"; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
121 } |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
122 |
22522
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
123 /** |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
124 * Frame descriptor this slot is associated with. |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
125 * |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
126 * @return instance of descriptor that {@link FrameDescriptor#addFrameSlot(java.lang.Object) |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
127 * created} the slot |
cda3eebfa777
Documenting FrameSlot methods. Deprecating FrameSlot constructor in favor of FrameDescriptor.addFrameSlot.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22157
diff
changeset
|
128 */ |
12644
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
129 public FrameDescriptor getFrameDescriptor() { |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
130 return this.descriptor; |
e122dc0436be
convert FrameSlot interface to a final class.
Andreas Woess <andreas.woess@jku.at>
parents:
11279
diff
changeset
|
131 } |
7267
a4b84ba6dc2e
Introduction of the Truffle API for efficient implementation of dynamic languages on top of the Graal VM. New projects com.oracle.truffle.api for the API definition and com.oracle.truffle.api.test for API tests and documentation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
132 } |