亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? jcl.c

?? linux下建立JAVA虛擬機的源碼KAFFE
?? C
字號:
/* jcl.c   Copyright (C) 1998, 2005 Free Software Foundation, Inc.This file is part of GNU Classpath.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version. GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301 USA.Linking this library statically or dynamically with other modules ismaking a combined work based on this library.  Thus, the terms andconditions of the GNU General Public License cover the wholecombination.As a special exception, the copyright holders of this library give youpermission to link this library with independent modules to produce anexecutable, regardless of the license terms of these independentmodules, and to copy and distribute the resulting executable underterms of your choice, provided that you also meet, for each linkedindependent module, the terms and conditions of the license of thatmodule.  An independent module is a module which is not derived fromor based on this library.  If you modify this library, you may extendthis exception to your version of the library, but you are notobligated to do so.  If you do not wish to do so, delete thisexception statement from your version. *//* do not move; needed here because of some macro definitions */#include "config.h"#include <stdlib.h>#include <stdio.h>#include <jcl.h>#ifndef __GNUC__  #ifndef __attribute__    #define __attribute__(x)	/* nothing */  #endif#endifJNIEXPORT void JNICALLJCL_ThrowException (JNIEnv * env, const char *className, const char *errMsg){  jclass excClass;  if ((*env)->ExceptionOccurred (env))    {      (*env)->ExceptionClear (env);    }  excClass = (*env)->FindClass (env, className);  if (excClass == NULL)    {      jclass errExcClass;      errExcClass =	(*env)->FindClass (env, "java/lang/ClassNotFoundException");      if (errExcClass == NULL)	{	  errExcClass = (*env)->FindClass (env, "java/lang/InternalError");	  if (errExcClass == NULL)	    {	      fprintf (stderr, "JCL: Utterly failed to throw exeption ");	      fprintf (stderr, className);	      fprintf (stderr, " with message ");	      fprintf (stderr, errMsg);	      return;	    }	}      /* Removed this (more comprehensive) error string to avoid the need for       * a static variable or allocation of a buffer for this message in this       * (unlikely) error case. --Fridi.        *       * sprintf(errstr,"JCL: Failed to throw exception %s with message %s: could not find exception class.", className, errMsg);        */      (*env)->ThrowNew (env, errExcClass, className);    }  (*env)->ThrowNew (env, excClass, errMsg);}JNIEXPORT void *JNICALLJCL_malloc (JNIEnv * env, size_t size){  void *mem = malloc (size);  if (mem == NULL)    {      JCL_ThrowException (env, "java/lang/OutOfMemoryError",			  "malloc() failed.");      return NULL;    }  return mem;}JNIEXPORT void *JNICALLJCL_realloc (JNIEnv * env, void *ptr, size_t size){  ptr = realloc (ptr, size);  if (ptr == 0)    {      JCL_ThrowException (env, "java/lang/OutOfMemoryError",			  "malloc() failed.");      return NULL;    }  return (ptr);}JNIEXPORT void JNICALLJCL_free (JNIEnv * env __attribute__ ((unused)), void *p){  if (p != NULL)    {      free (p);    }}JNIEXPORT const char *JNICALLJCL_jstring_to_cstring (JNIEnv * env, jstring s){  const char *cstr;  if (s == NULL)    {      JCL_ThrowException (env, "java/lang/NullPointerException",			  "Null string");      return NULL;    }  cstr = (const char *) (*env)->GetStringUTFChars (env, s, NULL);  if (cstr == NULL)    {      JCL_ThrowException (env, "java/lang/InternalError",			  "GetStringUTFChars() failed.");      return NULL;    }  return cstr;}JNIEXPORT void JNICALLJCL_free_cstring (JNIEnv * env, jstring s, const char *cstr){  (*env)->ReleaseStringUTFChars (env, s, cstr);}JNIEXPORT jint JNICALLJCL_MonitorEnter (JNIEnv * env, jobject o){  jint retval = (*env)->MonitorEnter (env, o);  if (retval != 0)    {      JCL_ThrowException (env, "java/lang/InternalError",			  "MonitorEnter() failed.");    }  return retval;}JNIEXPORT jint JNICALLJCL_MonitorExit (JNIEnv * env, jobject o){  jint retval = (*env)->MonitorExit (env, o);  if (retval != 0)    {      JCL_ThrowException (env, "java/lang/InternalError",			  "MonitorExit() failed.");    }  return retval;}JNIEXPORT jclass JNICALLJCL_FindClass (JNIEnv * env, const char *className){  jclass retval = (*env)->FindClass (env, className);  if (retval == NULL)    {      JCL_ThrowException (env, "java/lang/ClassNotFoundException", className);    }  return retval;}/* * Build a Pointer object. The function caches the class type  */static jclass rawDataClass;static jfieldID rawData_fid;static jmethodID rawData_mid;JNIEXPORT jobject JNICALLJCL_NewRawDataObject (JNIEnv * env, void *data){  if (rawDataClass == NULL)    {      jclass tmp;#if SIZEOF_VOID_P == 8      rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer64");      if (rawDataClass == NULL)	{	  JCL_ThrowException (env, "java/lang/InternalError",			      "unable to find internal class");	  return NULL;	}      rawData_mid = (*env)->GetMethodID (env, rawDataClass, "<init>", "(J)V");      if (rawData_mid == NULL)	{	  JCL_ThrowException (env, "java/lang/InternalError",			      "unable to find internal constructor");	  return NULL;	}      rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", "J");      if (rawData_fid == NULL)	{	  JCL_ThrowException (env, "java/lang/InternalError",			      "unable to find internal field");	  return NULL;	}#else      rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer32");      if (rawDataClass == NULL)	{	  JCL_ThrowException (env, "java/lang/InternalError",			      "unable to find internal class");	  return NULL;	}      rawData_mid = (*env)->GetMethodID (env, rawDataClass, "<init>", "(I)V");      if (rawData_mid == NULL)	{	  JCL_ThrowException (env, "java/lang/InternalError",			      "unable to find internal constructor");	  return NULL;	}      rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", "I");      if (rawData_fid == NULL)	{	  JCL_ThrowException (env, "java/lang/InternalError",			      "unable to find internal field");	  return NULL;	}#endif      tmp = (*env)->NewGlobalRef (env, rawDataClass);      if (tmp == NULL)	{	  JCL_ThrowException (env, "java/lang/InternalError",			      "unable to create an internal global ref");	  return NULL;	}      (*env)->DeleteLocalRef(env, rawDataClass);      rawDataClass = tmp;    }#if SIZEOF_VOID_P == 8  return (*env)->NewObject (env, rawDataClass, rawData_mid, (jlong) data);#else  return (*env)->NewObject (env, rawDataClass, rawData_mid, (jint) data);#endif}JNIEXPORT void * JNICALLJCL_GetRawData (JNIEnv * env, jobject rawdata){#if SIZEOF_VOID_P == 8  return (void *) (*env)->GetLongField (env, rawdata, rawData_fid);#else  return (void *) (*env)->GetIntField (env, rawdata, rawData_fid);#endif  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区中文字幕| 色伊人久久综合中文字幕| 亚洲第一福利一区| 亚洲激情五月婷婷| 亚洲一区二区三区四区五区黄 | 国产一区二区剧情av在线| 日日夜夜免费精品| 免费成人在线播放| 狠狠色综合播放一区二区| 韩国成人福利片在线播放| 国产精品资源网站| 粗大黑人巨茎大战欧美成人| fc2成人免费人成在线观看播放| 国产福利精品一区二区| 97精品视频在线观看自产线路二| 99久久久免费精品国产一区二区| 色88888久久久久久影院野外| 欧洲激情一区二区| 欧美变态口味重另类| 欧美激情中文不卡| 亚洲线精品一区二区三区八戒| 亚洲二区在线视频| 久久se精品一区精品二区| 国产成人免费av在线| 色八戒一区二区三区| 91麻豆精品91久久久久久清纯 | www.色精品| 欧美日韩另类一区| 久久这里都是精品| 中文字幕亚洲一区二区av在线| 一区二区免费看| 寂寞少妇一区二区三区| 一本久久a久久精品亚洲| 欧美区在线观看| 国产亚洲污的网站| 亚洲综合成人网| 精品一区二区三区视频在线观看| 北岛玲一区二区三区四区| 欧美狂野另类xxxxoooo| 亚洲精品一区二区在线观看| 中文字幕一区二区三区色视频| 午夜精品免费在线| 国产成人精品三级| 欧美福利一区二区| 亚洲天堂福利av| 蜜臀av一区二区在线观看| 91免费版在线| 久久青草国产手机看片福利盒子 | 日韩一区二区三区在线| 日韩美女视频一区| 国产一区二区影院| 91精品国产色综合久久不卡蜜臀| 成人免费在线播放视频| 国产精品亚洲一区二区三区妖精| 欧美日韩高清不卡| 亚洲精品高清视频在线观看| 国产综合色产在线精品| 欧美日韩成人激情| 一区二区三区在线高清| 成人sese在线| 国产日韩成人精品| 国产精品资源网站| 欧美va日韩va| 青青国产91久久久久久| 欧洲生活片亚洲生活在线观看| 国产精品大尺度| 成人永久免费视频| 久久精品一区八戒影视| 精油按摩中文字幕久久| 日韩一级片网址| 日韩成人免费电影| 91精品国产高清一区二区三区蜜臀| 一区二区三区在线观看动漫| 色8久久人人97超碰香蕉987| 亚洲欧美综合另类在线卡通| 91在线精品一区二区| 国产精品天美传媒沈樵| 不卡视频在线观看| 国产精品亲子乱子伦xxxx裸| www.在线成人| 亚洲欧美电影一区二区| 色综合天天综合狠狠| 亚洲视频一区二区在线| 成人黄色综合网站| 亚洲精品中文在线影院| 亚洲午夜视频在线| 在线看国产一区| 午夜电影网一区| 欧美日韩高清在线| 精品一区二区在线视频| 久久久噜噜噜久久中文字幕色伊伊| 国产毛片一区二区| 亚洲欧美日韩国产综合在线 | 色偷偷久久一区二区三区| 亚洲精品综合在线| 欧美高清视频一二三区| 国模大尺度一区二区三区| 亚洲国产精品t66y| 色狠狠桃花综合| 免费人成在线不卡| 国产精品女同互慰在线看| 色94色欧美sute亚洲线路二| 手机精品视频在线观看| 久久―日本道色综合久久| 一本久道中文字幕精品亚洲嫩| 日韩精品视频网| 国产日韩影视精品| 91久久线看在观草草青青| 免费精品视频在线| 国产精品国产三级国产有无不卡| 欧美日韩精品一二三区| 国产一区二区美女诱惑| 亚洲一区国产视频| 精品免费一区二区三区| 色哟哟日韩精品| 国产精品一区二区视频| 亚洲成av人片在线观看无码| 久久久久久久久久久久久久久99| 91久久精品一区二区| 狠狠色丁香久久婷婷综合_中| 自拍偷拍国产精品| 久久久99精品久久| 欧美日韩精品久久久| 成人美女在线观看| 美腿丝袜在线亚洲一区| 亚洲一区在线观看免费| 国产精品视频在线看| 欧美一区二区福利在线| 欧美优质美女网站| 成人久久18免费网站麻豆| 久久精品国产精品亚洲红杏| 一区二区三区四区不卡在线| 国产欧美日韩在线观看| 欧美大尺度电影在线| 欧美性xxxxxxxx| 老司机精品视频一区二区三区| 一区二区三区产品免费精品久久75| 欧美精品一区二区在线播放| 91国内精品野花午夜精品| 成人永久免费视频| 国产自产2019最新不卡| 石原莉奈在线亚洲三区| 亚洲激情av在线| 亚洲精品视频在线观看网站| 国产精品丝袜在线| 中文字幕乱码日本亚洲一区二区 | 亚洲国产成人porn| 一区二区三区日韩在线观看| 亚洲欧美在线视频观看| 国产精品免费视频观看| 中文字幕欧美三区| 欧美国产日本韩| 国产精品久久久久毛片软件| 久久精品人人做人人综合 | 99综合电影在线视频| aa级大片欧美| 91看片淫黄大片一级| 色综合久久中文字幕综合网| 91香蕉视频污| 欧美在线免费观看亚洲| 欧美日韩小视频| 欧美一级片在线看| 欧美mv日韩mv国产网站app| 久久综合九色综合欧美亚洲| 久久久国产午夜精品| 中文字幕精品—区二区四季| 亚洲欧洲日产国产综合网| 亚洲精品亚洲人成人网| 亚洲午夜影视影院在线观看| 日韩不卡一区二区三区| 国产一区二区久久| zzijzzij亚洲日本少妇熟睡| 在线看国产日韩| 日韩亚洲欧美中文三级| 久久精品欧美日韩| 亚洲最大成人综合| 久久精品国产色蜜蜜麻豆| 国产成人免费视频精品含羞草妖精 | 色视频成人在线观看免| 日韩一区二区三区视频| 国产成人免费高清| 亚洲青青青在线视频| 久久一区二区视频| 国产亚洲女人久久久久毛片| 欧美大白屁股肥臀xxxxxx| 欧美精品在线观看播放| 91精品久久久久久蜜臀| 日韩欧美在线一区二区三区| 日韩一区国产二区欧美三区| 国产亚洲精品7777| 国产精品高潮呻吟| 亚洲欧美日韩国产一区二区三区| 日韩国产高清在线| 久久99最新地址| 成人精品一区二区三区四区 | 自拍偷拍国产精品| 天堂影院一区二区| 国产一区二区三区美女| 一本久道久久综合中文字幕| 欧美mv日韩mv国产网站|