95 @Override
96 public int getLineNumber() {
97 // line number not available for native methods
98 if (isNativeMethod())
99 return -2;
100
101 return toStackTraceElement().getLineNumber();
102 }
103
104
105 @Override
106 public boolean isNativeMethod() {
107 return JLIA.isNative(memberName);
108 }
109
110 @Override
111 public String toString() {
112 return toStackTraceElement().toString();
113 }
114
115 /**
116 * Fill in the fields of the given StackTraceElement
117 */
118 private native void toStackTraceElement0(StackTraceElement ste);
119
120 @Override
121 public StackTraceElement toStackTraceElement() {
122 StackTraceElement s = ste;
123 if (s == null) {
124 synchronized (this) {
125 s = ste;
126 if (s == null) {
127 s = new StackTraceElement();
128 toStackTraceElement0(s);
129 ste = s;
130 }
131 }
132 }
133 return s;
134 }
135 }
|
95 @Override
96 public int getLineNumber() {
97 // line number not available for native methods
98 if (isNativeMethod())
99 return -2;
100
101 return toStackTraceElement().getLineNumber();
102 }
103
104
105 @Override
106 public boolean isNativeMethod() {
107 return JLIA.isNative(memberName);
108 }
109
110 @Override
111 public String toString() {
112 return toStackTraceElement().toString();
113 }
114
115 @Override
116 public StackTraceElement toStackTraceElement() {
117 StackTraceElement s = ste;
118 if (s == null) {
119 synchronized (this) {
120 s = ste;
121 if (s == null) {
122 ste = s = StackTraceElement.of(this);
123 }
124 }
125 }
126 return s;
127 }
128 }
|