src/share/vm/prims/jvmtiLib.xsl

Tue, 02 Apr 2013 11:28:33 +0200

author
mgerdin
date
Tue, 02 Apr 2013 11:28:33 +0200
changeset 4850
ede380e13960
parent 4037
da91efe96a93
child 6876
710a3c8b516e
permissions
-rw-r--r--

8009763: Add WB test for String.intern()
Summary: Add convenience method in StringTable, add WhiteBox method and simple sanity test
Reviewed-by: mgerdin, zgu
Contributed-by: leonid.mesnik@oracle.com

duke@435 1 <?xml version="1.0" encoding="utf-8"?>
duke@435 2 <!--
duke@435 3
coleenp@4037 4 Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
duke@435 5 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 6
duke@435 7 This code is free software; you can redistribute it and/or modify it
duke@435 8 under the terms of the GNU General Public License version 2 only, as
duke@435 9 published by the Free Software Foundation.
duke@435 10
duke@435 11 This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 14 version 2 for more details (a copy is included in the LICENSE file that
duke@435 15 accompanied this code).
duke@435 16
duke@435 17 You should have received a copy of the GNU General Public License version
duke@435 18 2 along with this work; if not, write to the Free Software Foundation,
duke@435 19 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 20
trims@1907 21 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 22 or visit www.oracle.com if you need additional information or have any
trims@1907 23 questions.
duke@435 24
duke@435 25 -->
duke@435 26
duke@435 27 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
duke@435 28 version="1.0">
duke@435 29
duke@435 30 <xsl:template name="microversion">
duke@435 31 <xsl:value-of select="//specification/@microversion"/>
duke@435 32 </xsl:template>
duke@435 33
duke@435 34 <xsl:template name="showbasicversion">
duke@435 35 <xsl:value-of select="//specification/@majorversion"/>
duke@435 36 <xsl:text>.</xsl:text>
duke@435 37 <xsl:value-of select="//specification/@minorversion"/>
duke@435 38 </xsl:template>
duke@435 39
duke@435 40 <xsl:template name="showversion">
duke@435 41 <xsl:call-template name="showbasicversion"/>
duke@435 42 <xsl:text>.</xsl:text>
duke@435 43 <xsl:call-template name="microversion"/>
duke@435 44 </xsl:template>
duke@435 45
duke@435 46 <xsl:template name="copyrightComment">
duke@435 47 <xsl:text>/* </xsl:text>
duke@435 48 <!-- Copy the Copyright comment from jvmti.xml -->
duke@435 49 <xsl:value-of select="/comment()[position()=1]"/>
duke@435 50 <xsl:text> */ &#xA;&#xA;</xsl:text>
duke@435 51 </xsl:template>
duke@435 52
duke@435 53 <xsl:template name="includeHeader">
duke@435 54 <xsl:call-template name="copyrightComment"/>
duke@435 55 <xsl:text> /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */ &#xA;</xsl:text>
duke@435 56 </xsl:template>
duke@435 57
duke@435 58 <xsl:template name="sourceHeader">
duke@435 59 <xsl:call-template name="copyrightComment"/>
duke@435 60 <xsl:text> // AUTOMATICALLY GENERATED FILE - DO NOT EDIT &#xA;</xsl:text>
duke@435 61 </xsl:template>
duke@435 62
duke@435 63
duke@435 64 <xsl:template match="parameters" mode="signature">
duke@435 65 <xsl:param name="comma">
duke@435 66 <xsl:text>,
duke@435 67 </xsl:text>
duke@435 68 </xsl:param>
duke@435 69 <xsl:if test="count(param) != 0">
duke@435 70 <xsl:value-of select="$comma"/>
duke@435 71 </xsl:if>
duke@435 72 <xsl:apply-templates select="." mode="signaturenoleadcomma">
duke@435 73 <xsl:with-param name="comma" select="$comma"/>
duke@435 74 </xsl:apply-templates>
duke@435 75 </xsl:template>
duke@435 76
duke@435 77
duke@435 78 <xsl:template match="parameters" mode="signaturenoleadcomma">
duke@435 79 <xsl:param name="comma">
duke@435 80 <xsl:text>,
duke@435 81 </xsl:text>
duke@435 82 </xsl:param>
duke@435 83 <xsl:variable name="length" select="count(param)"/>
duke@435 84 <xsl:for-each select="param">
duke@435 85 <xsl:variable name="separator">
duke@435 86 <xsl:choose>
duke@435 87 <xsl:when test="position()=$length">
duke@435 88 <xsl:text></xsl:text>
duke@435 89 </xsl:when>
duke@435 90 <xsl:otherwise>
duke@435 91 <xsl:value-of select="$comma"/>
duke@435 92 </xsl:otherwise>
duke@435 93 </xsl:choose>
duke@435 94 </xsl:variable>
duke@435 95 <xsl:apply-templates select="." mode="signature">
duke@435 96 <xsl:with-param name="comma" select="$separator"/>
duke@435 97 </xsl:apply-templates>
duke@435 98 </xsl:for-each>
duke@435 99 </xsl:template>
duke@435 100
duke@435 101
duke@435 102 <!-- remove jclass parameters that are jclass/jmethodID pairs.
duke@435 103 since the jclass was removed in JVMTI.
duke@435 104 -->
duke@435 105 <xsl:template match="param" mode="signature">
duke@435 106 <xsl:param name="comma"/>
duke@435 107 <xsl:variable name="id" select="@id"/>
duke@435 108 <xsl:for-each select="child::*[position()=1]">
duke@435 109 <xsl:if test="count(@method)=0">
duke@435 110 <xsl:apply-templates select="." mode="signature"/>
duke@435 111 <xsl:text> </xsl:text>
duke@435 112 <xsl:value-of select="$id"/>
duke@435 113 <xsl:value-of select="$comma"/>
duke@435 114 </xsl:if>
duke@435 115 </xsl:for-each>
duke@435 116 </xsl:template>
duke@435 117
duke@435 118
duke@435 119 <xsl:template match="field" mode="signature">
duke@435 120 <xsl:text> </xsl:text>
duke@435 121 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 122 <xsl:text> </xsl:text>
duke@435 123 <xsl:value-of select="@id"/>
duke@435 124 <xsl:text>;
duke@435 125 </xsl:text>
duke@435 126 </xsl:template>
duke@435 127
duke@435 128 <xsl:template match="nullok" mode="funcdescription">
duke@435 129 If
duke@435 130 <code>
duke@435 131 <xsl:value-of select="../../@id"/>
duke@435 132 </code>
duke@435 133 is
duke@435 134 <code>NULL</code>, <xsl:apply-templates/>.
duke@435 135 </xsl:template>
duke@435 136
duke@435 137 <xsl:template match="vmbuf|allocfieldbuf|struct" mode="funcdescription">
duke@435 138 <xsl:message terminate="yes">
duke@435 139 vmbuf|allocfieldbuf|struct as type of function parameter
duke@435 140 </xsl:message>
duke@435 141 </xsl:template>
duke@435 142
duke@435 143 <xsl:template match="ptrtype" mode="funcdescription">
duke@435 144 <p/>
duke@435 145 <xsl:apply-templates select="nullok" mode="funcdescription"/>
duke@435 146 </xsl:template>
duke@435 147
duke@435 148 <xsl:template match="inptr" mode="funcdescription">
duke@435 149 <p/>
duke@435 150 <xsl:variable name="child" select="child::*[position()=1]"/>
duke@435 151 <xsl:text>Agent passes in a pointer</xsl:text>
duke@435 152 <xsl:if test="name($child)!='void'">
duke@435 153 <xsl:text> to </xsl:text>
duke@435 154 <code>
duke@435 155 <xsl:apply-templates select="$child" mode="signature"/>
duke@435 156 </code>
duke@435 157 </xsl:if>
duke@435 158 <xsl:text>. </xsl:text>
duke@435 159 <xsl:apply-templates select="nullok" mode="funcdescription"/>
duke@435 160 </xsl:template>
duke@435 161
duke@435 162 <xsl:template match="inbuf" mode="funcdescription">
duke@435 163 <p/>
duke@435 164 <xsl:variable name="child" select="child::*[position()=1]"/>
duke@435 165 <xsl:text>Agent passes in </xsl:text>
duke@435 166 <xsl:choose>
duke@435 167 <xsl:when test="name($child)='void'">
duke@435 168 <xsl:text> a pointer</xsl:text>
duke@435 169 </xsl:when>
duke@435 170 <xsl:otherwise>
duke@435 171 <xsl:text> an array of </xsl:text>
duke@435 172 <xsl:if test="count(@incount)=1 and @incount!=''">
duke@435 173 <code>
duke@435 174 <xsl:value-of select="@incount"/>
duke@435 175 </code>
duke@435 176 <xsl:text> elements of </xsl:text>
duke@435 177 </xsl:if>
duke@435 178 <code>
duke@435 179 <xsl:apply-templates select="$child" mode="signature"/>
duke@435 180 </code>
duke@435 181 </xsl:otherwise>
duke@435 182 </xsl:choose>
duke@435 183 <xsl:text>. </xsl:text>
duke@435 184 <xsl:apply-templates select="nullok" mode="funcdescription"/>
duke@435 185 </xsl:template>
duke@435 186
duke@435 187 <xsl:template match="outptr" mode="funcdescription">
duke@435 188 <p/>
duke@435 189 <xsl:text>Agent passes a pointer to a </xsl:text>
duke@435 190 <code>
duke@435 191 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 192 </code>
duke@435 193 <xsl:text>. </xsl:text>
duke@435 194 <xsl:text>On return, the </xsl:text>
duke@435 195 <code>
duke@435 196 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 197 </code>
duke@435 198 <xsl:text> has been set. </xsl:text>
duke@435 199 <xsl:apply-templates select="nullok" mode="funcdescription"/>
duke@435 200 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription"/>
duke@435 201 </xsl:template>
duke@435 202
duke@435 203 <xsl:template match="allocbuf" mode="funcdescription">
duke@435 204 <p/>
duke@435 205 <xsl:text>Agent passes a pointer to a </xsl:text>
duke@435 206 <code>
duke@435 207 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 208 <xsl:text>*</xsl:text>
duke@435 209 </code>
duke@435 210 <xsl:text>. </xsl:text>
duke@435 211 <xsl:text>On return, the </xsl:text>
duke@435 212 <code>
duke@435 213 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 214 <xsl:text>*</xsl:text>
duke@435 215 </code>
duke@435 216 <xsl:text> points to a newly allocated array</xsl:text>
duke@435 217 <xsl:choose>
duke@435 218 <xsl:when test="count(@outcount)=1 and @outcount!=''">
duke@435 219 <xsl:text> of size </xsl:text>
duke@435 220 <code>
duke@435 221 <xsl:text>*</xsl:text>
duke@435 222 <xsl:value-of select="@outcount"/>
duke@435 223 </code>
duke@435 224 </xsl:when>
duke@435 225 <xsl:otherwise>
duke@435 226 <xsl:if test="count(@incount)=1 and @incount!=''">
duke@435 227 <xsl:text> of size </xsl:text>
duke@435 228 <code>
duke@435 229 <xsl:value-of select="@incount"/>
duke@435 230 </code>
duke@435 231 </xsl:if>
duke@435 232 </xsl:otherwise>
duke@435 233 </xsl:choose>
duke@435 234 <xsl:text>. The array should be freed with </xsl:text>
duke@435 235 <a href="#Deallocate"><code>Deallocate</code></a>
duke@435 236 <xsl:text>. </xsl:text>
duke@435 237 <xsl:apply-templates select="nullok" mode="funcdescription"/>
duke@435 238 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription">
duke@435 239 <xsl:with-param name="plural" select="'plural'"/>
duke@435 240 </xsl:apply-templates>
duke@435 241 </xsl:template>
duke@435 242
duke@435 243 <xsl:template match="allocallocbuf" mode="funcdescription">
duke@435 244 <p/>
duke@435 245 <xsl:text>Agent passes a pointer to a </xsl:text>
duke@435 246 <code>
duke@435 247 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 248 <xsl:text>**</xsl:text>
duke@435 249 </code>
duke@435 250 <xsl:text>. </xsl:text>
duke@435 251 <xsl:text>On return, the </xsl:text>
duke@435 252 <code>
duke@435 253 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 254 <xsl:text>**</xsl:text>
duke@435 255 </code>
duke@435 256 <xsl:text> points to a newly allocated array</xsl:text>
duke@435 257 <xsl:choose>
duke@435 258 <xsl:when test="count(@outcount)=1 and @outcount!=''">
duke@435 259 <xsl:text> of size </xsl:text>
duke@435 260 <code>
duke@435 261 <xsl:text>*</xsl:text>
duke@435 262 <xsl:value-of select="@outcount"/>
duke@435 263 </code>
duke@435 264 </xsl:when>
duke@435 265 <xsl:otherwise>
duke@435 266 <xsl:if test="count(@incount)=1 and @incount!=''">
duke@435 267 <xsl:text> of size </xsl:text>
duke@435 268 <code>
duke@435 269 <xsl:value-of select="@incount"/>
duke@435 270 </code>
duke@435 271 </xsl:if>
duke@435 272 </xsl:otherwise>
duke@435 273 </xsl:choose>
duke@435 274 <xsl:text>, each element of which is also newly allocated.
duke@435 275 The array should be freed with </xsl:text>
duke@435 276 <a href="#Deallocate"><code>Deallocate</code></a>
duke@435 277 <xsl:text>.
duke@435 278 Each of the elements should be freed with </xsl:text>
duke@435 279 <a href="#Deallocate"><code>Deallocate</code></a>
duke@435 280 <xsl:text>. </xsl:text>
duke@435 281 <xsl:apply-templates select="nullok" mode="funcdescription"/>
duke@435 282 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription">
duke@435 283 <xsl:with-param name="plural" select="'plural'"/>
duke@435 284 </xsl:apply-templates>
duke@435 285 </xsl:template>
duke@435 286
duke@435 287 <xsl:template match="outbuf" mode="funcdescription">
duke@435 288 <p/>
duke@435 289 <xsl:text>Agent passes an array </xsl:text>
duke@435 290 <xsl:if test="count(@incount)=1 and @incount!=''">
duke@435 291 <xsl:text>large enough to hold </xsl:text>
duke@435 292 <code>
duke@435 293 <xsl:value-of select="@incount"/>
duke@435 294 </code>
duke@435 295 <xsl:text> elements </xsl:text>
duke@435 296 </xsl:if>
duke@435 297 <xsl:text>of </xsl:text>
duke@435 298 <code>
duke@435 299 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 300 </code>
duke@435 301 <xsl:text>. The incoming values of the elements of the array are ignored. </xsl:text>
duke@435 302 <xsl:text>On return, </xsl:text>
duke@435 303 <xsl:if test="count(@outcount)=1 and @outcount!=''">
duke@435 304 <code>
duke@435 305 <xsl:text>*</xsl:text>
duke@435 306 <xsl:value-of select="@outcount"/>
duke@435 307 </code>
duke@435 308 <xsl:text> of </xsl:text>
duke@435 309 </xsl:if>
duke@435 310 <xsl:text>the elements are set. </xsl:text>
duke@435 311 <xsl:apply-templates select="nullok" mode="funcdescription"/>
duke@435 312 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription">
duke@435 313 <xsl:with-param name="plural" select="'plural'"/>
duke@435 314 </xsl:apply-templates>
duke@435 315 </xsl:template>
duke@435 316
duke@435 317 <xsl:template match="agentbuf" mode="funcdescription">
duke@435 318 <p/>
duke@435 319 <xsl:apply-templates select="nullok" mode="funcdescription"/>
duke@435 320 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription">
duke@435 321 <xsl:with-param name="plural" select="'plural'"/>
duke@435 322 </xsl:apply-templates>
duke@435 323 </xsl:template>
duke@435 324
duke@435 325 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jclass|jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|varargs|struct" mode="funcdescription">
duke@435 326 </xsl:template>
duke@435 327
duke@435 328 <xsl:template match="jthread" mode="funcdescription">
duke@435 329 <xsl:if test="count(@null)!=0">
duke@435 330 If
duke@435 331 <code>
duke@435 332 <xsl:value-of select="../@id"/>
duke@435 333 </code>
duke@435 334 is
duke@435 335 <code>NULL</code>, the current thread is used.
duke@435 336 </xsl:if>
duke@435 337 </xsl:template>
duke@435 338
duke@435 339 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|varargs" mode="returndescription">
duke@435 340 </xsl:template>
duke@435 341
duke@435 342 <xsl:template match="struct" mode="returndescription">
duke@435 343 <xsl:param name="plural"/>
duke@435 344 <xsl:variable name="structname" select="."/>
duke@435 345 <xsl:for-each select="//typedef[@id=$structname]|//uniontypedef[@id=$structname]">
duke@435 346 <xsl:for-each select="field">
duke@435 347 <xsl:apply-templates select="child::*[position()=1]" mode="fieldreturndescription">
duke@435 348 <xsl:with-param name="plural" select="$plural"/>
duke@435 349 </xsl:apply-templates>
duke@435 350 </xsl:for-each>
duke@435 351 </xsl:for-each>
duke@435 352 </xsl:template>
duke@435 353
duke@435 354 <xsl:template match="jclass|jthread|jobject|jvalue|jthreadGroup" mode="returndescription">
duke@435 355 <xsl:param name="plural"/>
duke@435 356 <xsl:text>The object</xsl:text>
duke@435 357 <xsl:if test="$plural='plural'">
duke@435 358 <xsl:text>s</xsl:text>
duke@435 359 </xsl:if>
duke@435 360 <xsl:text> returned by </xsl:text>
duke@435 361 <code>
duke@435 362 <xsl:value-of select="../../@id"/>
duke@435 363 </code>
duke@435 364 <xsl:choose>
duke@435 365 <xsl:when test="$plural='plural'">
duke@435 366 <xsl:text> are JNI local references and must be </xsl:text>
duke@435 367 </xsl:when>
duke@435 368 <xsl:otherwise>
duke@435 369 <xsl:text> is a JNI local reference and must be </xsl:text>
duke@435 370 </xsl:otherwise>
duke@435 371 </xsl:choose>
duke@435 372 <a href="#refs">managed</a>.
duke@435 373 </xsl:template>
duke@435 374
duke@435 375 <xsl:template match="outptr|inptr|inbuf|agentbuf|allocbuf|allocallocbuf" mode="fieldreturndescription">
duke@435 376 <xsl:variable name="field" select="ancestor::field"/>
duke@435 377 <xsl:message terminate="yes">
duke@435 378 outptr, allocallocbuf, outbuf, vmbuf, allocbuf, inptr, inbuf or agentbuf as type of returned field:
duke@435 379 <xsl:value-of select="$field/@id"/> of <xsl:value-of select="$field/../@id"/>
duke@435 380 </xsl:message>
duke@435 381 </xsl:template>
duke@435 382
duke@435 383 <xsl:template match="outbuf" mode="fieldreturndescription">
duke@435 384 <!-- hand document this special case.
duke@435 385 -->
duke@435 386 </xsl:template>
duke@435 387
duke@435 388 <xsl:template match="struct" mode="fieldreturndescription">
duke@435 389 <xsl:param name="plural"/>
duke@435 390 <xsl:variable name="structname" select="."/>
duke@435 391 <xsl:for-each select="//typedef[@id=$structname]|//uniontypedef[@id=$structname]">
duke@435 392 <xsl:for-each select="field">
duke@435 393 <xsl:apply-templates select="child::*[position()=1]" mode="fieldreturndescription">
duke@435 394 <xsl:with-param name="plural" select="$plural"/>
duke@435 395 </xsl:apply-templates>
duke@435 396 </xsl:for-each>
duke@435 397 </xsl:for-each>
duke@435 398 </xsl:template>
duke@435 399
duke@435 400 <xsl:template match="allocfieldbuf" mode="fieldreturndescription">
duke@435 401 <xsl:param name="plural"/>
duke@435 402 <xsl:variable name="field" select="ancestor::field"/>
duke@435 403 <xsl:text>The pointer</xsl:text>
duke@435 404 <xsl:if test="$plural='plural'">
duke@435 405 <xsl:text>s</xsl:text>
duke@435 406 </xsl:if>
duke@435 407 <xsl:text> returned in the field </xsl:text>
duke@435 408 <code>
duke@435 409 <xsl:value-of select="$field/@id"/>
duke@435 410 </code>
duke@435 411 <xsl:text> of </xsl:text>
duke@435 412 <code>
duke@435 413 <xsl:value-of select="$field/../@id"/>
duke@435 414 </code>
duke@435 415 <xsl:choose>
duke@435 416 <xsl:when test="$plural='plural'">
duke@435 417 <xsl:text> are newly allocated arrays. The arrays</xsl:text>
duke@435 418 </xsl:when>
duke@435 419 <xsl:otherwise>
duke@435 420 <xsl:text> is a newly allocated array. The array</xsl:text>
duke@435 421 </xsl:otherwise>
duke@435 422 </xsl:choose>
duke@435 423 <xsl:text> should be freed with </xsl:text>
duke@435 424 <a href="#Deallocate"><code>Deallocate</code></a>
duke@435 425 <xsl:text>. </xsl:text>
duke@435 426
duke@435 427 <xsl:apply-templates select="child::*[position()=1]" mode="fieldreturndescription">
duke@435 428 <xsl:with-param name="plural" select="'plural'"/>
duke@435 429 </xsl:apply-templates>
duke@435 430 </xsl:template>
duke@435 431
duke@435 432 <xsl:template match="ptrtype|vmbuf|jmethodID|jfieldID|jframeID|jrawMonitorID|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void" mode="fieldreturndescription">
duke@435 433 </xsl:template>
duke@435 434
duke@435 435 <xsl:template match="jclass|jthread|jobject|jvalue|jthreadGroup" mode="fieldreturndescription">
duke@435 436 <xsl:param name="plural"/>
duke@435 437 <xsl:variable name="field" select="ancestor::field"/>
duke@435 438 <xsl:text>The object</xsl:text>
duke@435 439 <xsl:if test="$plural='plural'">
duke@435 440 <xsl:text>s</xsl:text>
duke@435 441 </xsl:if>
duke@435 442 <xsl:text> returned in the field </xsl:text>
duke@435 443 <code>
duke@435 444 <xsl:value-of select="$field/@id"/>
duke@435 445 </code>
duke@435 446 <xsl:text> of </xsl:text>
duke@435 447 <code>
duke@435 448 <xsl:value-of select="$field/../@id"/>
duke@435 449 </code>
duke@435 450 <xsl:choose>
duke@435 451 <xsl:when test="$plural='plural'">
duke@435 452 <xsl:text> are JNI local references and must be </xsl:text>
duke@435 453 </xsl:when>
duke@435 454 <xsl:otherwise>
duke@435 455 <xsl:text> is a JNI local reference and must be </xsl:text>
duke@435 456 </xsl:otherwise>
duke@435 457 </xsl:choose>
duke@435 458 <a href="#refs">managed</a>.
duke@435 459 </xsl:template>
duke@435 460
duke@435 461 <xsl:template match="nullok" mode="signature">
duke@435 462 </xsl:template>
duke@435 463
duke@435 464 <xsl:template match="jmethodID|jfieldID|jrawMonitorID|jclass|jthread|jobject|jvalue|jthreadGroup|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|size_t|void" mode="signature">
duke@435 465 <xsl:value-of select="name()"/>
duke@435 466 </xsl:template>
duke@435 467
duke@435 468 <xsl:template match="jframeID" mode="signature">
duke@435 469 <xsl:text>jint</xsl:text>
duke@435 470 </xsl:template>
duke@435 471
duke@435 472 <xsl:template match="uchar" mode="signature">
duke@435 473 <xsl:text>unsigned char</xsl:text>
duke@435 474 </xsl:template>
duke@435 475
duke@435 476 <xsl:template match="enum|struct" mode="signature">
duke@435 477 <xsl:value-of select="."/>
duke@435 478 </xsl:template>
duke@435 479
duke@435 480 <xsl:template match="varargs" mode="signature">
duke@435 481 </xsl:template>
duke@435 482
duke@435 483 <xsl:template match="outptr|outbuf|allocfieldbuf" mode="signature">
duke@435 484 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 485 <xsl:text>*</xsl:text>
duke@435 486 </xsl:template>
duke@435 487
duke@435 488 <xsl:template match="ptrtype" mode="signature">
duke@435 489 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 490 </xsl:template>
duke@435 491
duke@435 492 <xsl:template match="inptr|inbuf|vmbuf" mode="signature">
duke@435 493 <xsl:text>const </xsl:text>
duke@435 494 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 495 <xsl:text>*</xsl:text>
duke@435 496 </xsl:template>
duke@435 497
duke@435 498 <xsl:template match="allocbuf|agentbuf" mode="signature">
duke@435 499 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 500 <xsl:text>**</xsl:text>
duke@435 501 </xsl:template>
duke@435 502
duke@435 503 <xsl:template match="allocallocbuf" mode="signature">
duke@435 504 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 505 <xsl:text>***</xsl:text>
duke@435 506 </xsl:template>
duke@435 507
duke@435 508 <xsl:template match="nullok" mode="link">
duke@435 509 </xsl:template>
duke@435 510
duke@435 511 <xsl:template match="jmethodID|jfieldID|jrawMonitorID|jclass|jthread|jobject|jvalue|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|jthreadGroup" mode="link">
duke@435 512 <a>
duke@435 513 <xsl:attribute name="href">
duke@435 514 <xsl:text>#</xsl:text><xsl:value-of select="name()"/>
duke@435 515 </xsl:attribute>
duke@435 516 <xsl:value-of select="name()"/>
duke@435 517 </a>
duke@435 518 </xsl:template>
duke@435 519
duke@435 520 <xsl:template match="jframeID" mode="link">
duke@435 521 <a>
duke@435 522 <xsl:attribute name="href">
duke@435 523 <xsl:text>#jint</xsl:text>
duke@435 524 </xsl:attribute>
duke@435 525 <xsl:text>jint</xsl:text>
duke@435 526 </a>
duke@435 527 </xsl:template>
duke@435 528
duke@435 529 <xsl:template match="enum|struct" mode="link">
duke@435 530 <a>
duke@435 531 <xsl:attribute name="href">
duke@435 532 <xsl:text>#</xsl:text>
duke@435 533 <xsl:value-of select="."/>
duke@435 534 </xsl:attribute>
duke@435 535 <xsl:value-of select="."/>
duke@435 536 </a>
duke@435 537 </xsl:template>
duke@435 538
duke@435 539 <xsl:template match="char|size_t|void" mode="link">
duke@435 540 <xsl:value-of select="name()"/>
duke@435 541 </xsl:template>
duke@435 542
duke@435 543 <xsl:template match="uchar" mode="link">
duke@435 544 <xsl:text>unsigned char</xsl:text>
duke@435 545 </xsl:template>
duke@435 546
duke@435 547 <xsl:template match="varargs" mode="link">
duke@435 548 <xsl:text>...</xsl:text>
duke@435 549 </xsl:template>
duke@435 550
duke@435 551 <xsl:template match="ptrtype" mode="link">
duke@435 552 <xsl:apply-templates mode="link"/>
duke@435 553 </xsl:template>
duke@435 554
duke@435 555 <xsl:template match="outptr|outbuf|allocfieldbuf" mode="link">
duke@435 556 <xsl:apply-templates mode="link"/>
duke@435 557 <xsl:text>*</xsl:text>
duke@435 558 </xsl:template>
duke@435 559
duke@435 560 <xsl:template match="inptr|inbuf|vmbuf" mode="link">
duke@435 561 <xsl:text>const </xsl:text>
duke@435 562 <xsl:apply-templates mode="link"/>
duke@435 563 <xsl:text>*</xsl:text>
duke@435 564 </xsl:template>
duke@435 565
duke@435 566 <xsl:template match="allocbuf|agentbuf" mode="link">
duke@435 567 <xsl:apply-templates mode="link"/>
duke@435 568 <xsl:text>**</xsl:text>
duke@435 569 </xsl:template>
duke@435 570
duke@435 571 <xsl:template match="allocallocbuf" mode="link">
duke@435 572 <xsl:apply-templates mode="link"/>
duke@435 573 <xsl:text>***</xsl:text>
duke@435 574 </xsl:template>
duke@435 575
duke@435 576 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jclass|jobject|jvalue|jthreadGroup|jthread|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|size_t|void" mode="btsig">
duke@435 577 <xsl:value-of select="name()"/>
duke@435 578 </xsl:template>
duke@435 579
duke@435 580 <xsl:template match="uchar" mode="btsig">
duke@435 581 <xsl:text>unsigned char</xsl:text>
duke@435 582 </xsl:template>
duke@435 583
duke@435 584 <xsl:template match="enum|struct" mode="btsig">
duke@435 585 <xsl:value-of select="."/>
duke@435 586 </xsl:template>
duke@435 587
duke@435 588 <xsl:template match="outbuf" mode="btsig">
duke@435 589 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
duke@435 590 <xsl:text>*</xsl:text>
duke@435 591 </xsl:template>
duke@435 592
duke@435 593 <xsl:template name="gentypedef">
duke@435 594 <xsl:param name="tdef"/>
duke@435 595 <xsl:text>typedef struct {
duke@435 596 </xsl:text>
duke@435 597 <xsl:apply-templates select="$tdef/field" mode="signature"/>
duke@435 598 <xsl:text>} </xsl:text>
duke@435 599 <xsl:value-of select="$tdef/@id"/>
duke@435 600 <xsl:text>;</xsl:text>
duke@435 601 </xsl:template>
duke@435 602
duke@435 603 <xsl:template name="genuniontypedef">
duke@435 604 <xsl:param name="tdef"/>
duke@435 605 <xsl:text>typedef union {
duke@435 606 </xsl:text>
duke@435 607 <xsl:apply-templates select="$tdef/field" mode="signature"/>
duke@435 608 <xsl:text>} </xsl:text>
duke@435 609 <xsl:value-of select="$tdef/@id"/>
duke@435 610 <xsl:text>;</xsl:text>
duke@435 611 </xsl:template>
duke@435 612
duke@435 613
duke@435 614 <xsl:template match="capabilitiestypedef" mode="genstruct">
duke@435 615 <xsl:variable name="caps" select="count(capabilityfield)"/>
duke@435 616 <xsl:text>typedef struct {
duke@435 617 </xsl:text>
duke@435 618 <xsl:apply-templates select="capabilityfield" mode="signature"/>
duke@435 619 <xsl:variable name="rem" select="$caps mod 16"/>
duke@435 620 <xsl:if test="$rem != 0">
duke@435 621 <xsl:text> unsigned int : </xsl:text>
duke@435 622 <xsl:value-of select="16 - $rem"/>
duke@435 623 <xsl:text>;
duke@435 624 </xsl:text>
duke@435 625 </xsl:if>
duke@435 626 <xsl:if test="$caps &lt;= 32">
duke@435 627 <xsl:text> unsigned int : 16;
duke@435 628 </xsl:text>
duke@435 629 </xsl:if>
duke@435 630 <xsl:if test="$caps &lt;= 48">
duke@435 631 <xsl:text> unsigned int : 16;
duke@435 632 </xsl:text>
duke@435 633 </xsl:if>
duke@435 634 <xsl:if test="$caps &lt;= 64">
duke@435 635 <xsl:text> unsigned int : 16;
duke@435 636 </xsl:text>
duke@435 637 </xsl:if>
duke@435 638 <xsl:if test="$caps &lt;= 80">
duke@435 639 <xsl:text> unsigned int : 16;
duke@435 640 </xsl:text>
duke@435 641 </xsl:if>
duke@435 642 <xsl:if test="$caps &lt;= 96">
duke@435 643 <xsl:text> unsigned int : 16;
duke@435 644 </xsl:text>
duke@435 645 </xsl:if>
duke@435 646 <xsl:if test="$caps &lt;= 112">
duke@435 647 <xsl:text> unsigned int : 16;
duke@435 648 </xsl:text>
duke@435 649 </xsl:if>
duke@435 650 <xsl:text>} </xsl:text>
duke@435 651 <xsl:value-of select="@id"/>
duke@435 652 <xsl:text>;</xsl:text>
duke@435 653 </xsl:template>
duke@435 654
duke@435 655 <xsl:template match="capabilityfield" mode="signature">
duke@435 656 <xsl:text> unsigned int </xsl:text>
duke@435 657 <xsl:value-of select="@id"/>
duke@435 658 <xsl:text> : 1;
duke@435 659 </xsl:text>
duke@435 660 </xsl:template>
duke@435 661
duke@435 662 <xsl:template match="constants" mode="enum">
duke@435 663 <xsl:text>
duke@435 664 typedef </xsl:text>
duke@435 665 <xsl:apply-templates select="." mode="enumcore"/>
duke@435 666 <xsl:text> </xsl:text>
duke@435 667 <xsl:value-of select="@id"/>
duke@435 668 <xsl:text>;</xsl:text>
duke@435 669 </xsl:template>
duke@435 670
duke@435 671 <xsl:template match="constants" mode="constants">
duke@435 672 <xsl:text>
duke@435 673 </xsl:text>
duke@435 674 <xsl:apply-templates select="." mode="enumcore"/>
duke@435 675 <xsl:text>;</xsl:text>
duke@435 676 </xsl:template>
duke@435 677
duke@435 678 <xsl:template match="constants" mode="enumcore">
duke@435 679 <xsl:text>enum {
duke@435 680 </xsl:text>
duke@435 681 <xsl:for-each select="constant">
duke@435 682 <xsl:if test="position() &gt; 1">
duke@435 683 <xsl:text>,
duke@435 684 </xsl:text>
duke@435 685 </xsl:if>
duke@435 686 <xsl:apply-templates select="." mode="enum"/>
duke@435 687 </xsl:for-each>
duke@435 688 <xsl:text>
duke@435 689 }</xsl:text>
duke@435 690 </xsl:template>
duke@435 691
duke@435 692 <xsl:template match="event" mode="enum">
duke@435 693 <xsl:text> </xsl:text>
duke@435 694 <xsl:value-of select="@const"/>
duke@435 695 <xsl:text> = </xsl:text>
duke@435 696 <xsl:value-of select="@num"/>
duke@435 697 </xsl:template>
duke@435 698
duke@435 699 <xsl:template match="constant|errorid" mode="enum">
duke@435 700 <xsl:text> </xsl:text>
duke@435 701 <xsl:value-of select="@id"/>
duke@435 702 <xsl:text> = </xsl:text>
duke@435 703 <xsl:value-of select="@num"/>
duke@435 704 </xsl:template>
duke@435 705
duke@435 706
duke@435 707 <xsl:template name="eventStruct">
duke@435 708 <xsl:param name="events"/>
duke@435 709 <xsl:param name="index"/>
duke@435 710 <xsl:param name="started"/>
duke@435 711 <xsl:param name="comment"/>
duke@435 712 <xsl:variable name="thisEvent" select="$events[@num=$index]"/>
duke@435 713 <xsl:choose>
duke@435 714 <xsl:when test="count($thisEvent)=1">
duke@435 715 <xsl:if test="$comment='Yes'">
duke@435 716 <xsl:text> /* </xsl:text>
duke@435 717 <xsl:number value="$index" format=" 1"/>
duke@435 718 <xsl:text> : </xsl:text>
duke@435 719 <xsl:value-of select="$thisEvent/@label"/>
duke@435 720 <xsl:text> */
duke@435 721 </xsl:text>
duke@435 722 </xsl:if>
duke@435 723 <xsl:text> jvmtiEvent</xsl:text>
duke@435 724 <xsl:value-of select="$thisEvent/@id"/>
duke@435 725 <xsl:text> </xsl:text>
duke@435 726 <xsl:value-of select="$thisEvent/@id"/>
duke@435 727 <xsl:text>;
duke@435 728 </xsl:text>
duke@435 729 </xsl:when>
duke@435 730 <xsl:otherwise>
duke@435 731 <xsl:if test="$started">
duke@435 732 <xsl:if test="$comment='Yes'">
duke@435 733 <xsl:text> /* </xsl:text>
duke@435 734 <xsl:number value="$index" format=" 1"/>
duke@435 735 <xsl:text> */
duke@435 736 </xsl:text>
duke@435 737 </xsl:if>
duke@435 738 <xsl:text> jvmtiEventReserved reserved</xsl:text>
duke@435 739 <xsl:value-of select="$index"/>
duke@435 740 <xsl:text>;
duke@435 741 </xsl:text>
duke@435 742 </xsl:if>
duke@435 743 </xsl:otherwise>
duke@435 744 </xsl:choose>
duke@435 745 <xsl:if test="count($events[@num &gt; $index]) &gt; 0">
duke@435 746 <xsl:call-template name="eventStruct">
duke@435 747 <xsl:with-param name="events" select="$events"/>
duke@435 748 <xsl:with-param name="index" select="1+$index"/>
duke@435 749 <xsl:with-param name="started" select="$started or count($thisEvent)=1"/>
duke@435 750 <xsl:with-param name="comment" select="$comment"/>
duke@435 751 </xsl:call-template>
duke@435 752 </xsl:if>
duke@435 753 </xsl:template>
duke@435 754
duke@435 755
duke@435 756 <!-- ======== HotSpotType ======== -->
duke@435 757
duke@435 758 <xsl:template match="parameters" mode="HotSpotSig">
duke@435 759 <xsl:variable name="length" select="count(param)"/>
duke@435 760 <xsl:for-each select="param">
duke@435 761 <xsl:variable name="separator">
duke@435 762 <xsl:choose>
duke@435 763 <xsl:when test="position()=$length">
duke@435 764 <xsl:text></xsl:text>
duke@435 765 </xsl:when>
duke@435 766 <xsl:otherwise>
duke@435 767 <xsl:text>, </xsl:text>
duke@435 768 </xsl:otherwise>
duke@435 769 </xsl:choose>
duke@435 770 </xsl:variable>
duke@435 771 <xsl:apply-templates select="." mode="HotSpotSig">
duke@435 772 <xsl:with-param name="comma" select="$separator"/>
duke@435 773 </xsl:apply-templates>
duke@435 774 </xsl:for-each>
duke@435 775 </xsl:template>
duke@435 776
duke@435 777 <xsl:template match="param" mode="HotSpotSig">
duke@435 778 <xsl:param name="comma"/>
duke@435 779 <xsl:variable name="result">
duke@435 780 <xsl:apply-templates select="child::*[position()=1]" mode="HotSpotType"/>
duke@435 781 </xsl:variable>
duke@435 782 <xsl:if test="string-length($result)!=0">
duke@435 783 <xsl:value-of select="$result"/>
duke@435 784 <xsl:text> </xsl:text>
duke@435 785 <xsl:apply-templates select="child::*[position()=1]" mode="HotSpotName">
duke@435 786 <xsl:with-param name="name" select="@id"/>
duke@435 787 </xsl:apply-templates>
duke@435 788 <xsl:value-of select="$comma"/>
duke@435 789 </xsl:if>
duke@435 790 </xsl:template>
duke@435 791
duke@435 792 <xsl:template match="jthread" mode="HotSpotType">
duke@435 793 <xsl:choose>
duke@435 794 <xsl:when test="count(@impl)=0 or not(contains(@impl,'noconvert'))">
duke@435 795 <xsl:text>JavaThread*</xsl:text>
duke@435 796 </xsl:when>
duke@435 797 <xsl:otherwise>
duke@435 798 <xsl:value-of select="name()"/>
duke@435 799 </xsl:otherwise>
duke@435 800 </xsl:choose>
duke@435 801 </xsl:template>
duke@435 802
duke@435 803 <xsl:template match="jrawMonitorID" mode="HotSpotType">
duke@435 804 <xsl:text>JvmtiRawMonitor *</xsl:text>
duke@435 805 </xsl:template>
duke@435 806
duke@435 807 <xsl:template match="jframeID" mode="HotSpotType">
duke@435 808 <xsl:text>jint</xsl:text>
duke@435 809 </xsl:template>
duke@435 810
duke@435 811 <xsl:template match="jmethodID" mode="HotSpotType">
coleenp@4037 812 <xsl:text>Method*</xsl:text>
duke@435 813 </xsl:template>
duke@435 814
duke@435 815 <xsl:template match="jfieldID" mode="HotSpotType">
duke@435 816 <xsl:text>fieldDescriptor*</xsl:text>
duke@435 817 </xsl:template>
duke@435 818
duke@435 819 <xsl:template match="jclass" mode="HotSpotType">
duke@435 820 <!--
duke@435 821 classes passed as part of a class/method or class/field pair are used
duke@435 822 by the wrapper to get the internal type but are not needed by nor
duke@435 823 passed to the implementation layer.
duke@435 824 -->
duke@435 825 <xsl:if test="count(@method|@field)=0">
duke@435 826 <xsl:text>oop</xsl:text>
duke@435 827 </xsl:if>
duke@435 828 </xsl:template>
duke@435 829
duke@435 830 <xsl:template match="nullok" mode="HotSpotType">
duke@435 831 </xsl:template>
duke@435 832
duke@435 833 <xsl:template match="jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|struct" mode="HotSpotType">
duke@435 834 <xsl:apply-templates select="." mode="btsig"/>
duke@435 835 </xsl:template>
duke@435 836
duke@435 837 <xsl:template match="varargs" mode="HotSpotType">
duke@435 838 <xsl:text> </xsl:text>
duke@435 839 </xsl:template>
duke@435 840
duke@435 841 <xsl:template match="outptr|outbuf|allocfieldbuf" mode="HotSpotType">
duke@435 842 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
duke@435 843 <xsl:text>*</xsl:text>
duke@435 844 </xsl:template>
duke@435 845
duke@435 846 <xsl:template match="ptrtype" mode="HotSpotType">
duke@435 847 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
duke@435 848 </xsl:template>
duke@435 849
duke@435 850 <xsl:template match="inptr|inbuf|vmbuf" mode="HotSpotType">
duke@435 851 <xsl:text>const </xsl:text>
duke@435 852 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
duke@435 853 <xsl:text>*</xsl:text>
duke@435 854 </xsl:template>
duke@435 855
duke@435 856 <xsl:template match="allocbuf|agentbuf" mode="HotSpotType">
duke@435 857 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
duke@435 858 <xsl:text>**</xsl:text>
duke@435 859 </xsl:template>
duke@435 860
duke@435 861 <xsl:template match="allocallocbuf" mode="HotSpotType">
duke@435 862 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
duke@435 863 <xsl:text>***</xsl:text>
duke@435 864 </xsl:template>
duke@435 865
duke@435 866 <!-- ======== HotSpotName ======== -->
duke@435 867
duke@435 868 <xsl:template match="jthread" mode="HotSpotName">
duke@435 869 <xsl:param name="name"/>
duke@435 870 <xsl:choose>
duke@435 871 <xsl:when test="count(@impl)=0 or not(contains(@impl,'noconvert'))">
duke@435 872 <xsl:text>java_thread</xsl:text>
duke@435 873 </xsl:when>
duke@435 874 <xsl:otherwise>
duke@435 875 <xsl:value-of select="$name"/>
duke@435 876 </xsl:otherwise>
duke@435 877 </xsl:choose>
duke@435 878 </xsl:template>
duke@435 879
duke@435 880 <xsl:template match="jrawMonitorID" mode="HotSpotName">
duke@435 881 <xsl:text>rmonitor</xsl:text>
duke@435 882 </xsl:template>
duke@435 883
duke@435 884 <xsl:template match="jframeID" mode="HotSpotName">
duke@435 885 <xsl:text>depth</xsl:text>
duke@435 886 </xsl:template>
duke@435 887
duke@435 888 <xsl:template match="jmethodID" mode="HotSpotName">
duke@435 889 <xsl:text>method_oop</xsl:text>
duke@435 890 </xsl:template>
duke@435 891
duke@435 892 <xsl:template match="jfieldID" mode="HotSpotName">
duke@435 893 <xsl:text>fdesc_ptr</xsl:text>
duke@435 894 </xsl:template>
duke@435 895
duke@435 896 <xsl:template match="jclass" mode="HotSpotName">
duke@435 897 <!--
duke@435 898 classes passed as part of a class/method or class/field pair are used
duke@435 899 by the wrapper to get the internal type but are not needed by nor
duke@435 900 passed to the implementation layer. This value is checked for empty.
duke@435 901 -->
duke@435 902 <xsl:if test="count(@method|@field)=0">
duke@435 903 <xsl:text>k_mirror</xsl:text>
duke@435 904 </xsl:if>
duke@435 905 </xsl:template>
duke@435 906
duke@435 907 <xsl:template match="nullok" mode="HotSpotName">
duke@435 908 </xsl:template>
duke@435 909
duke@435 910 <xsl:template match="jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|varargs|struct|outptr|outbuf|allocfieldbuf|ptrtype|inptr|inbuf|vmbuf|allocbuf|agentbuf|allocallocbuf" mode="HotSpotName">
duke@435 911 <xsl:param name="name"/>
duke@435 912 <xsl:value-of select="$name"/>
duke@435 913 </xsl:template>
duke@435 914
duke@435 915 <!-- ======== HotSpotValue ======== -->
duke@435 916
duke@435 917
duke@435 918 <xsl:template match="parameters" mode="HotSpotValue">
duke@435 919 <xsl:variable name="length" select="count(param)"/>
duke@435 920 <xsl:for-each select="param">
duke@435 921 <xsl:variable name="separator">
duke@435 922 <xsl:choose>
duke@435 923 <xsl:when test="position()=$length">
duke@435 924 <xsl:text></xsl:text>
duke@435 925 </xsl:when>
duke@435 926 <xsl:otherwise>
duke@435 927 <xsl:text>, </xsl:text>
duke@435 928 </xsl:otherwise>
duke@435 929 </xsl:choose>
duke@435 930 </xsl:variable>
duke@435 931 <xsl:apply-templates select="." mode="HotSpotValue">
duke@435 932 <xsl:with-param name="comma" select="$separator"/>
duke@435 933 </xsl:apply-templates>
duke@435 934 </xsl:for-each>
duke@435 935 </xsl:template>
duke@435 936
duke@435 937 <xsl:template match="param" mode="HotSpotValue">
duke@435 938 <xsl:param name="comma"/>
duke@435 939 <xsl:variable name="result">
duke@435 940 <xsl:apply-templates select="child::*[position()=1]" mode="HotSpotValue">
duke@435 941 <xsl:with-param name="name" select="@id"/>
duke@435 942 </xsl:apply-templates>
duke@435 943 </xsl:variable>
duke@435 944 <xsl:if test="string-length($result)!=0">
duke@435 945 <xsl:value-of select="$result"/>
duke@435 946 <xsl:value-of select="$comma"/>
duke@435 947 </xsl:if>
duke@435 948 </xsl:template>
duke@435 949
duke@435 950 <xsl:template match="jframeID|jmethodID|jrawMonitorID|jthread|jclass|nullok" mode="HotSpotValue">
duke@435 951 <xsl:param name="name"/>
duke@435 952 <xsl:apply-templates select="." mode="HotSpotName">
duke@435 953 <xsl:with-param name="name" select="$name"/>
duke@435 954 </xsl:apply-templates>
duke@435 955 </xsl:template>
duke@435 956
duke@435 957 <xsl:template match="jfieldID" mode="HotSpotValue">
duke@435 958 <xsl:text>&amp;fdesc</xsl:text>
duke@435 959 </xsl:template>
duke@435 960
duke@435 961 <xsl:template match="jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|struct|outptr|outbuf|allocfieldbuf|ptrtype|inptr|inbuf|vmbuf|allocbuf|agentbuf|allocallocbuf" mode="HotSpotValue">
duke@435 962 <xsl:param name="name"/>
duke@435 963 <xsl:value-of select="$name"/>
duke@435 964 </xsl:template>
duke@435 965
duke@435 966 <xsl:template match="varargs" mode="HotSpotValue">
duke@435 967 <xsl:text>NULL</xsl:text>
duke@435 968 </xsl:template>
duke@435 969
duke@435 970 </xsl:stylesheet>
duke@435 971

mercurial