src/share/vm/classfile/classFileStream.cpp

Thu, 27 May 2010 19:08:38 -0700

author
trims
date
Thu, 27 May 2010 19:08:38 -0700
changeset 1907
c18cbe5936b8
parent 435
a61af66fc99e
child 2314
f95d63e2154a
permissions
-rw-r--r--

6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair

     1 /*
     2  * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     8  *
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12  * version 2 for more details (a copy is included in the LICENSE file that
    13  * accompanied this code).
    14  *
    15  * You should have received a copy of the GNU General Public License version
    16  * 2 along with this work; if not, write to the Free Software Foundation,
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18  *
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    22  *
    23  */
    25 #include "incls/_precompiled.incl"
    26 #include "incls/_classFileStream.cpp.incl"
    28 void ClassFileStream::truncated_file_error(TRAPS) {
    29   THROW_MSG(vmSymbols::java_lang_ClassFormatError(), "Truncated class file");
    30 }
    32 ClassFileStream::ClassFileStream(u1* buffer, int length, char* source) {
    33   _buffer_start = buffer;
    34   _buffer_end   = buffer + length;
    35   _current      = buffer;
    36   _source       = source;
    37   _need_verify  = false;
    38 }
    40 u1 ClassFileStream::get_u1(TRAPS) {
    41   if (_need_verify) {
    42     guarantee_more(1, CHECK_0);
    43   } else {
    44     assert(1 <= _buffer_end - _current, "buffer overflow");
    45   }
    46   return *_current++;
    47 }
    49 u2 ClassFileStream::get_u2(TRAPS) {
    50   if (_need_verify) {
    51     guarantee_more(2, CHECK_0);
    52   } else {
    53     assert(2 <= _buffer_end - _current, "buffer overflow");
    54   }
    55   u1* tmp = _current;
    56   _current += 2;
    57   return Bytes::get_Java_u2(tmp);
    58 }
    60 u4 ClassFileStream::get_u4(TRAPS) {
    61   if (_need_verify) {
    62     guarantee_more(4, CHECK_0);
    63   } else {
    64     assert(4 <= _buffer_end - _current, "buffer overflow");
    65   }
    66   u1* tmp = _current;
    67   _current += 4;
    68   return Bytes::get_Java_u4(tmp);
    69 }
    71 u8 ClassFileStream::get_u8(TRAPS) {
    72   if (_need_verify) {
    73     guarantee_more(8, CHECK_0);
    74   } else {
    75     assert(8 <= _buffer_end - _current, "buffer overflow");
    76   }
    77   u1* tmp = _current;
    78   _current += 8;
    79   return Bytes::get_Java_u8(tmp);
    80 }
    82 void ClassFileStream::skip_u1(int length, TRAPS) {
    83   if (_need_verify) {
    84     guarantee_more(length, CHECK);
    85   }
    86   _current += length;
    87 }
    89 void ClassFileStream::skip_u2(int length, TRAPS) {
    90   if (_need_verify) {
    91     guarantee_more(length * 2, CHECK);
    92   }
    93   _current += length * 2;
    94 }

mercurial