📄 typemap
字号:
## ***** BEGIN LICENSE BLOCK *****# Version: MPL 1.1/GPL 2.0/LGPL 2.1## The contents of this file are subject to the Mozilla Public License Version# 1.1 (the "License"); you may not use this file except in compliance with# the License. You may obtain a copy of the License at# http://www.mozilla.org/MPL/## Software distributed under the License is distributed on an "AS IS" basis,# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License# for the specific language governing rights and limitations under the# License.## The Original Code is Mozilla Communicator client code, released# March 31, 1998.## The Initial Developer of the Original Code is# Netscape Communications Corporation.# Portions created by the Initial Developer are Copyright (C) 1998# the Initial Developer. All Rights Reserved.## Contributor(s):## Alternatively, the contents of this file may be used under the terms of# either the GNU General Public License Version 2 or later (the "GPL"), or# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),# in which case the provisions of the GPL or the LGPL are applicable instead# of those above. If you wish to allow use of your version of this file only# under the terms of either the GPL or the LGPL, and not to allow others to# use your version of this file under the terms of the MPL, indicate your# decision by deleting the provisions above and replace them with the notice# and other provisions required by the GPL or the LGPL. If you do not delete# the provisions above, a recipient may use your version of this file under# the terms of any one of the MPL, the GPL or the LGPL.## ***** END LICENSE BLOCK *****## Typemap for PerlConnect#TYPEMAP# These types have direct equivalents implemented as Perl packagesJSRuntime * RUNTIMEJSContext * CONTEXTJSScript * SCRIPTjsval jsval# This is an auxilary type. Object serves as a wrapper for itJSObject * OBJECTOUTPUTjsval { SV *foo = sv_newmortal(); JSVALToSV(cx, JS_GetGlobalObject(cx), $var, &foo); sv_setsv($arg, foo); }OBJECT sv_setref_pv($arg, "JS::Object", (void*)$var);#CONTEXT# sv_setref_pv($arg, "JS::Context", (void*)$var);SCRIPT sv_setref_pv($arg, "JS::Script", (void*)$var);RUNTIME sv_setref_pv($arg, "JS::Runtime", (void*)$var);#JS_OBJECT# sv_setref_pv($arg, "JSObject", (void*)$var);INPUTjsval { /* JSContext *cx = getContext(); */ SVToJSVAL(cx, JS_GetGlobalObject(cx), newRV($arg), &$var); }OBJECT if(sv_isa($arg, \"JS::Object\")) $var = ($type)SvIV((SV*)SvRV($arg)); else{ warn(\"${Package}::$func_name() -- $var is not a blessed JS::Object reference\"); XSRETURN_UNDEF; }#CONTEXT# if(sv_isa($arg, \"JS::Context\"))# $var = ($type)SvIV((SV*)SvRV($arg));# else{# warn(\"${Package}::$func_name() -- $var is not a blessed JS::Context reference\");# XSRETURN_UNDEF;# }CONTEXT if(sv_isa($arg, \"JS::Context\")) $var = ($type)SvIV(*hv_fetch((HV*)SvRV($arg), \"_handle\", 7, 0)); else{ warn(\"${Package}::$func_name() -- $var is not a blessed JS::Context reference\"); XSRETURN_UNDEF; }SCRIPT if(sv_isa($arg, \"JS::Script\")) $var = ($type)SvIV((SV*)SvRV($arg)); else{ warn(\"${Package}::$func_name() -- $var is not a blessed JS::Script reference\"); XSRETURN_UNDEF; }RUNTIME if(sv_isa($arg, \"JS::Runtime\")) $var = ($type)SvIV((SV*)SvRV($arg)); else{ warn(\"${Package}::$func_name() -- $var is not a blessed JS::Runtime reference\"); XSRETURN_UNDEF; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -