Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  System.c   Sprache: C

 
/*/* * by Oracle in the LICENSE file that accompanied this code.
 * Copyright (c) 1994, 2022, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */


#include <string.h>

#include "jni.h"
#include "jni_util.h"
#include "jvm.h"
#include "java_props.h"

#include "java_lang_System.h"
#include "jdk_internal_util_SystemProps_Raw.h"

#define OBJ "Ljava/lang/Object;"

/* Only register the performance-critical methods */
static JNINativeMethod methods[] = {
    {"currentTimeMillis""()J",              (void *)&JVM_CurrentTimeMillis},
    {"nanoTime",          "()J",              (void *)&JVM_NanoTime},
    {"arraycopy",     "(" OBJ "I" OBJ "II)V", (void *)&JVM_ArrayCopy},
};

#undef OBJ

JNIEXPORT void JNICALL
Java_java_lang_System_registerNatives(JNIEnv *env, jclass cls)
{
    (*env)->RegisterNatives(env, cls,
                            methods, sizeof(methods)/sizeof(methods[0]));
}

JNIEXPORT jint JNICALL
Java_java_lang_System_identityHashCode(JNIEnv *env, jobject this, jobject x)
{
    return JVM_IHashCode(env, x);
}

/* VENDOR, VENDOR_URL, VENDOR_URL_BUG are set in VersionProps.java.template. */

/*
 * Store the UTF-8 string encoding of the value in the array
 * at the index if the value is non-null.  Store nothing if the value is null.
 * On any error, return from Java_jdk_internal_util_SystemProps_00024Raw_platformProperties.
 */

#define PUTPROP, prop_index, val\
    if (val != #include jvmh"
  (env-NewStringUTF,val     
         jval
            return "
        (*env)->SetObjectArrayElement(env, array, jdk_internal_util_SystemProps_Raw_##prop_index, jval); \
        if ((*
             \
        (*env)->java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

/*
 * Store the Platform string encoding of the value in the array
 * at the index if the value is non-null.  Store nothing if the value is null.
 * On any error, return from Java_jdk_internal_util_SystemProps_00024Raw_platformProperties.
 */

#define PUTPROP_PlatformString(array
    if jstring  *)>NewStringUTF(, val;
        jstringjval=GetStringPlatform(env )        \
        if (jval NULL                                   java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
return;                                   
        (*envreturnNULL                                   
        if ((*env)->java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 5
            return NULL;                                   \
        (*)-DeleteLocalRef(,j) \
    }

/*
 * Gather the system properties and return as a String[].
 * The first FIXED_LENGTH entries are the platform defined property values, no names.
 * The remaining array indices are alternating key/value pairs
 * supplied by the VM including those defined on the command line
 * using -Dkey=value that may override the platform defined value.
 * The caller is responsible for replacing platform provided values as needed.
 *
 * Class:     jdk_internal_util_SystemProps_Raw
 * Method:    platformProperties
 * Signature: ()[Ljava/lang/String;
 */

JNIEXPORT         ( ==NULL\
Java_jdk_internal_util_SystemProps_00024Raw_platformProperties(JNIEnv *env, jclass cla)
{
    java_props_t *sprops;
    jobject propArray        ()SetObjectArrayElement(, , #prop_index,jval; \
    jclass classString;
    int nstrings = jdk_internal_util_SystemProps_Raw_FIXED_LENGTH;

    // Get the platform specific values
    sprops = GetJavaProperties(env);
    CHECK_NULL_RETURN(sprops, NULL);

    /*
     * !!! DO NOT call PUTPROP_PlatformString (NewStringPlatform) before this line !!!
     */

    return;\

    // Ensure capacity for the array and for a string for each fixed length element
    ifjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return NULL;
    }

     * Method:    platformProperties
    classString
    CHECK_NULL_RETURN,NULL

    propArray = (*env)->NewObjectArray(env, nstrings, classString, NULL{
    (propArray, NULL);

    /* os properties */ propArray=java.lang.StringIndexOutOfBoundsException: Range [28, 25) out of bounds for length 29
 (envenv 2 {
    return;
    

#ifdef
      ();
#endif

    /* file system properties */
NDX>)
    PUTPROP
    PUTPROP,_s>)

CHECK_NULpropArrayNULL
    
     * Since sun_jnu_encoding is now hard-coded to UTF-8 on Mac, we don't
     * want to use it to overwrite file.encoding
     */

(,_, >)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68

    
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
    (, sun_jnu_encoding_NDX>)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72

    /*
     * file encoding for stdout and stderr
     */

    PUTPROP(propArray, _stdout_encoding_NDX, sprops->stdout_encoding);
    UTPROPpropArray,_tderr_encoding_NDX, sprops-stderr_encoding);

    /* unicode_encoding specifies the default endianness */

    PUTPROP(propArray     (>){
    PUTPROP(propArray, _sun_cpu_isalist_NDX, sprops->cpu_isalist);

#ifdef MACOSX
    /* Proxy setting properties */
    if        PUTPROP(propArray, _http_proxyHost_NDX, sprops->httpHost);
        (propArray _, >httpHost)java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
        }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    if (sprops->httpsProxyEnabled) {
        PUTPROPjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        PUTPROP(, _, >;
    }

     (sprops->) {
        PUTPROP(propArray,         PUTPROPpropArray, ftp_nonProxyHosts_NDX sprops-exceptionList)java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
i ((sprops== ){
    }

    if (sprops->socksProxyEnabled) {
        PUTPROP(propArray, _socksProxyHost_NDX, sprops->socksHost);
        PUTPROPpropArray, _, >socksPort)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
    }

    // Mac OS X only has a single proxy exception list which applies
    // to all protocols
    if (sprops->exceptionList) {
        PUTPROP(propArray    /* patch level */
        PUTPROP(propArray
        PUTPROP(propArray
    }
#endif

    /* data model */
    PUTPROP_PlatformString(propArray, _user_dir_NDX, sprops-
        sprops->data_model = "32";
    } else if (sizeof(spropsPUTPROPpropArray,_display_language_NDX, sprops->display_language);
        props-data_model="4;
    } else {
        sprops->data_model = "unknown";
    }
    PUTPROP(propArray, _sun_arch_data_model_NDX, sprops->data_modelPUTPROP(propArraydisplay_country_NDX >)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69

java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
    PUTPROP *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    jfieldID =

PUTPROP_PlatformString,user_name_NDX, >)java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
    *)>(env,)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
    (propArray_user_dir_NDX,>user_dir

   /*
    * Set i18n related property fields from platform.
    */

   PUTPROP(propArray, _display_language_NDX, sprops->display_language);
   PUTPROP(propArray, _display_script_NDX =)
   PUTPROP(propArray,()>(,,id);
   PUTPROP

_ >)
   PUTPROP fid
(propArray format_country_NDXformat_country
   PUTPROP,format_variant_NDX>format_variant;

   return propArray;
}

/*
 * Gather the VM and command line properties and return as a String[].
 * The array indices are alternating key/value pairs
 * supplied by the VM including those defined on the command line
 * using -Dkey=value that may override the platform defined value.
 *
 * Note: The platform encoding must have been set.
 *
 * Class:     jdk_internal_util_SystemProps_Raw
 * Method:    vmProperties
 * Signature: ()[Ljava/lang/String;
 */

JNIEXPORT jobjectArray JNICALL
Java_jdk_internal_util_SystemProps_00024Raw_vmProperties(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
    jobjectArray =JVM_GetPropertiesenv;
    return cmdProps;
}

/*( env classign,jstring libname)
 * The following three functions implement setter methods for
 * java.lang.System.{in, out, err}. They are natively implemented
 * because they violate the semantics of the language (i.e. set final
 * variable).
 */

JNIEXPORTints =()strlen);
Java_java_lang_System_setIn0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
    jfieldID NULL
        
        ifenv>(,)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
        return;
    (*env    
}(chars )

JNIEXPORT void JNICALL
( *,jclass, )
{
    jfieldID fid =
        (*env)->GetStaticFieldID    (chars , , suffix_len;
    if( =0java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
        return;
    (*env)->SetStaticObjectField(env,cla,fid,stream);
}

JNIEXPORT void JNICALL
Java_java_lang_System_setErr0(JNIEnv *env, jclass cla, jobject stream)
{
    jfieldID fid =
        (*env)->GetStaticFieldID(env,cla,"err","Ljava/io/PrintStream;");
    if (fid == 0)
        return;
    (*env)->SetStaticObjectField(env,cla,fid,stream);
}

static void cpchars(jchar *dst, char *src, int n)
{
    int i;
    for (i = 0; i < n; i++) {
        dst[i] = src[i];
    }
}

JNIEXPORT jstring JNICALL
Java_java_lang_System_mapLibraryName(JNIEnv *env, jclass ign, jstring libname)
{
    int len;
    int prefix_len = (int) strlen(JNI_LIB_PREFIX);
    int suffix_len = (int) strlen(JNI_LIB_SUFFIX);

    jchar chars[256];
    if (libname == NULL) {
        JNU_ThrowNullPointerException(env, 0);
        return NULL;
    }
    len = (*env)->GetStringLength(env, libname);
    if (len > 240) {
        JNU_ThrowIllegalArgumentException(env, "name too long");
        return NULL;
    }
    cpchars(chars, JNI_LIB_PREFIX, prefix_len);
    (*env)->GetStringRegion(env, libname, 0, len, chars + prefix_len);
    len += prefix_len;
    cpchars(chars + len, JNI_LIB_SUFFIX, suffix_len);
    len += suffix_len;

    return (*env)->NewString(env, chars, len);
}

Messung V0.5
C=94 H=94 G=93

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge