From 3ae19b4171b2d335cf63821215dc583c2d35c48d Mon Sep 17 00:00:00 2001 From: hyee Date: Tue, 1 Feb 2022 18:41:05 +0800 Subject: [PATCH] ready for next release --- dbcli.sh | 11 +- lib/dbcli.jar | Bin 260451 -> 260451 bytes lib/jnlua.jar | Bin 159300 -> 159720 bytes lib/linux/libjnlua5.1.so | Bin 56664 -> 91696 bytes lib/mac-arm/libjnlua5.1.so | Bin 128667 -> 126171 bytes lib/mac/javavm.so | Bin 34432 -> 34616 bytes lib/mac/libjnlua5.1.so | Bin 111128 -> 115376 bytes lib/misc.lua | 8 +- lib/x64/javavm.dll | Bin 19968 -> 19968 bytes lib/x64/jnlua5.1.dll | Bin 84992 -> 103936 bytes lib/x86/javavm.dll | Bin 19470 -> 19470 bytes lib/x86/jnlua5.1.dll | Bin 100366 -> 122894 bytes lua/db_core.lua | 7 +- src/jnlua.c | 2455 +++++++++++++++++++-------------- src/makefiles/LuaJIT_make.txt | 1 + 15 files changed, 1451 insertions(+), 1031 deletions(-) diff --git a/dbcli.sh b/dbcli.sh index 43b39c43..ca383382 100644 --- a/dbcli.sh +++ b/dbcli.sh @@ -62,9 +62,9 @@ if [[ "$_java" ]]; then fi fi -chmod 777 ./jre_$os/bin/* &>/dev/null + if [[ $found < 2 ]]; then - if [[ -x ./jre_$os/bin/java ]]; then + if [[ -f ./jre_$os/bin/unpack200 ]]; then _java=./jre_$os/bin/java ver="52" else @@ -102,8 +102,11 @@ if [[ "$os" = mac* ]]; then fi # unpack jar files for the first use unpack="$JAVA_ROOT/bin/unpack200" -if [[ -x ./jre_$os/bin/unpack200 ]]; then +if [[ -f ./jre_$os/bin/unpack200 ]]; then unpack=./jre_$os/bin/unpack200 + if [ ! -x "$unpack" ]; then + chmod +x ./jre_$os/bin/* &>/dev/null + fi elif [ ! -x "$unpack" ]; then echo "Cannot find unpack200 executable, exit." popd @@ -118,6 +121,6 @@ wait trap '' TSTP &>/dev/null -chmod 777 ./lib/$os/luajit &>/dev/null +chmod +x ./lib/$os/luajit &>/dev/null exec -a "dbcli" ./lib/$os/luajit ./lib/bootstrap.lua "$_java" "$ver" "$@" popd \ No newline at end of file diff --git a/lib/dbcli.jar b/lib/dbcli.jar index c2fe7f6adc9469f7f669eca5cc967cf04bb68f6e..a961b55f61ccb14f21671f0f5147ec59a1238856 100644 GIT binary patch delta 2663 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 diff --git a/lib/jnlua.jar b/lib/jnlua.jar index 8ad3905731448cd7acd69f0f47180ef37f1764ab..fa4aa73c112312a45e24f7641ae75d94438d007a 100644 GIT binary patch delta 40752 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 delta 40280 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 D_!R(8 diff --git a/lib/linux/libjnlua5.1.so b/lib/linux/libjnlua5.1.so index d0e84240ff44e348c3b3f4fcd58c0fa1be034015..ad00b4ec614b42a03b5b93077410b994fe4aae19 100644 GIT binary patch literal 91696 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 literal 56664 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 O|AiBY&sIAN{r>>emcJbU diff --git a/lib/mac-arm/libjnlua5.1.so b/lib/mac-arm/libjnlua5.1.so index d516bbae83dd6015592310105c6d1baabc9d171c..64a954b6aea5e9c6b7ce45f263ff5442997081b4 100644 GIT binary patch literal 126171 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 SqHk7Q{jdLA_QR9O!~Q?kqa^PD diff --git a/lib/mac/javavm.so b/lib/mac/javavm.so index 870361b946a0b2247bbd98a47c52a6dee52053ae..e8001e3552ab74386aacfee5e4ec353d03225dbf 100644 GIT binary patch delta 373 zcmZqZW!lllwBY~~lLh{Vj6U&2sX3{M#i{XSxeW0o`Nbtg unR)48PI6IdVhKb%B^4;1UkMgYPb~q{sYONkMGWz2rFqFEnfZCeKnnp~wMXgz delta 173 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 VZ|h$!*=Wm-ZXS*fY3|%y?hhwG{gD6w diff --git a/lib/misc.lua b/lib/misc.lua index 819bb304..d2f9b9b7 100644 --- a/lib/misc.lua +++ b/lib/misc.lua @@ -190,7 +190,13 @@ if not table.unpack then table.unpack=function(tab) return unpack(tab) end end local system=java.system local clocker=system.currentTimeMillis function os.timer() - return clocker()/1000 + local uv=env.luv + if uv and uv.now then + uv.update_time() + return uv.now() + else + return clocker()/1000 + end end function string.from(v) diff --git a/lib/x64/javavm.dll b/lib/x64/javavm.dll index dd6f8efb9fc1d2a469299f654c480183bf975596..28acd5b54a4f3d9e087ef13e0feff0a24a87e48d 100644 GIT binary patch delta 32 mcmZpe!`Lu~aY6@kE7#A7-M-96Ef_c6*0cn1H?v#)6b1m(3=F{l delta 32 mcmZpe!`Lu~aY6_4q!r&LcKb5lE@9YsThkK6-OO(FQy2j23Jzib diff --git a/lib/x64/jnlua5.1.dll b/lib/x64/jnlua5.1.dll index 993f805751fc706d73c05a97c94e828c9d08bb6b..b65a0794fcb0b75c3196d45629e9f583c17f72c1 100644 GIT binary patch literal 103936 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 literal 84992 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 F_&*U5BHRD~ diff --git a/lib/x86/javavm.dll b/lib/x86/javavm.dll index 4eb0d2d07d3a3904dad259a8a11e8d7a6c79195f..fdf8169f5c73fe1dc0fc99bd761ff288ee127e8e 100644 GIT binary patch delta 31 lcmeC1!Pqy0aY6^P*s>oJyM38to^QORWeMVKX18J&0szmp3_bt= delta 31 lcmeC1!Pqy0aY6_4x)t9hcKb4UyxDk5%M!%f%x=Xl1OVh@4W9r2 diff --git a/lib/x86/jnlua5.1.dll b/lib/x86/jnlua5.1.dll index 567dae176f61d99f81a055b0e4096fe363536991..4165426ed8666c9d3fb6f8892c59170050e6c3d2 100644 GIT binary patch literal 122894 zcmd?S3w%`7)jm8S6Br>lQ4)Ikb+^L{q#gw+F6wUyxsKJ>j zoF2zUs@1mIntyDieQiahil7(>5WG|o6;Qn3t)6k9#$qwvnE&&vea@LPmt;a)-|zc= zAO6hD*=JwZde&vHeVOwvZ1LoKJRUFpPb55^wfN+}TKU`ipJu#1^5k_#de$8Ax1nqE z8vZtP%G~cSET6yNs_!kh^osJ!F1_-~tF-d(US7T+cxCzbuPm>>U~>5tSIxQnw84W1 z2CS+Z$9p^tc>_Ji{Gt0&&)z&q-Rn8>ltFp@j`MsO&oATu{zxvy|3&z}mU*-$`QA_U zn@L z)p};PpSD0{{PY;SXvBMV>TBuwM%JD_N)`OzQhd(G`|slO{LFl(eRttP=ImmhEWYsB z{jZtrUar~|T7sq?j(K&K`o6F7DOw{FX?lM~zV_4VCQV@*Bl)Ks`B>l9Ecvu~(!X-% z0}mwMwk-J;Tt4rr%Rn}^SBre4&l4H>#<80JKmMB>+E?1?4K!oy=I)n09=${N2F#sL zdpwanZO^|IY--z%Kic3Xia*x$$oUI_(`VL zUc&BbWf*rwXMMm+km^$cK0KG}#eu~3(7wV@0SBFjE-P9|zgsHXV_#1s5>EeHNn?_H z^50N@yS`OBtCbXIQZ177j!@iN{pw=Bk&gxs;32WS`qf46>!Si@)gFwifVt5;zOgEP zt8DKqARYOAc>%|nO1$-?d#pdY(bTeB=n(rd9$KQ>sUD7|sC-cq=;h;wRK)ydKeQIx zcPNptx$@CVNZ7*!l<}%E9(H0I%ChJ@E=R*6+B0Kbwx#t9% zfnNWGaFQ6 z;MA7jDWOmDf~|b(?(DmtO3U$|2|bx*zWKGslY=5L+3ll~HTfeKqHpOHy}w(HI<5XE zvL`Q8&Bk6NwXGroOEh)2Rb)$SJ>Etij2{}bReIMhl}fL+w{mdkRiQLITaEbfjuxPvgav^EMiJiW z4FPXr(ku*nZP#w0bw>(+sGp5lC;-+N`JlcRlu9(tGV)2OvH-_7m!oc>w}CY1=9wK( zd=`K0@+?(yd;TI48fAR*P=;mMXrg30URb(4KDfpG&+0FWaQrO7PZ?DON?Dqv%$BDt z`O!c^^6z8wsHini0HmO%rRYScy%sM`Z71~>pk`NO^?&*_ebZ#9bV`2n7>{;|v7j(= zP&@Lmzo6{H1o(kJXkRwQ6@k`+{SW$@KN_ojyZNJ9?d-@N>6>;U7~0|RGqR_1ocMq8 zGWe!3sR$PB;>ZsFE$x?dG_`cr%J?ex#DA&ew>?iER}{a$#lpX9d~BSf5P>GVMq+$z zPl4}hAga9LH|dv=e;)I1>nVS--bOc_d*n|t|61f%U1+lLmeSANuJ<(G#RdQ-09k@J z(9H@~99N=b7LzoA9S5Nj3yJ5=#X`fG7kAKb*m$F2FBNuALCMITYfpsL{M{zl;opM2 zrTz!ohi;#lP)mn;AYoXTf{CVXoCcjO3`79NMdf2CwCyw)3(3i6uJN2mTP; z26b@fxL}ic^s|tsiae(p)eXyj?Sx(4S0>^}&d-$^{o&uD4vScck_lF#jzp5~VYI@2 zP~@Z^waCC1(6M4eMNl||d+sf=422<9n(bl{u5d)-!ye`fr~wDPHVsouSGaIzfKSSzbW z%DNX=I(8oDk%9+w%v=E~LHv)9)$G!OVc|0M`Q zadpRaMXtdKtfgL#kG-84yCU5_PZjH0W6TQ7GUf$l7+3o&Mnw|-@V#KJ`2#vkTaEg_ z6n!38Ruh1V^_pIwxB2QqPw=}&e?Vehpcrrx#brCyUFlG7Zw6B!wmtNu~4!T*f;GJI|k1UegHD)bv}KkKT?LmMn7Y4IXW$^`8*S) z`z)B4RAu$5Fm^dIy7ZAXKbaK>*Z}_qJFpdk@@+2&Ba|4PNr}xE3pzmB*|ZQ!_#?OD zO(+5C-^bzB`GCB7p>#32TcLl$29pvK;}~NgX+z~t+h^2y^=6e)+MU84yF=;@Cur%!0aPXX`q5HpvutGE`2=W8WO|IX^yYdb z4<+2_&pI%j^*IKc3`msFQc%ZtiELW>%ot03hV0#W+L_lLA2Rbf%lWRO?N*^sOha)n zzkwaapv1YE&kmDkw=u^gTD zKI++dfkFxgX|LH0-pndqPuGXg-@7IgtJFAN`f5VTrO0f9W~(_J(=8CuXE7}?aSF%; zh0!u1yp6BwG$Mf1;94_6e}0mJaF6YL zqwpoR1nt}YB>agN=z|TndtV3NB@W$$$`B^6j-eHUvx%PSTJmMk@$Bd+u64-qRY#ig_ECrvD{n>_&T60o$s`X2fU12i#cgR|Za-}_$}L4TwlJ!B6W$F! zv?)Gi5S1i&bC%W{LPF59)+9@nHI z5P}ov2O$6?$9;ejDEbUO%u>KRb_XQ`YJEzeCR!h;G9Q2w1bS9Q9{1mPI>}EOvcH(! zuGN|nB^p|0*uo$Ft5s*?F&G9FQ4u@!4pN(1Kw{xiWdfvdv4|47G{7XVie3>}Rcs7i zqhLd(B(u<_i;9z+$QK)j%EkXgcN%LkhBaGI1=&xbcL=-s;T{N!2AvVP2^;Z;9;%9i_rIx}`!*DzwJq zu5d(pg^f;yN8^>nU(r>i(DGly$i+=x2iF41sfet$$4)M+yvuQXIedVUCV)7KsQ-MWPDck_KE-p4!B?4O$7jdsg$H97zp?hgyc_H8LnittwL zJA}b)WUUQ?0J@lzQwyBG1NDqrXjXstW_}%F45a#pgOj+)4o4h1q<3gDV4FGVz<891 zIs<16k5aDi9-Q5mhP46GXz=F<-KI&rzFT<#4t*;3#G1if=NS#B$kJ25Vf<%F|0oN+ zj_COB(n|tk|J(FJqyH6p-45`$=_USExiQuSFj$dM=JOkcXan2`gUND0rZuH<+R+$d z28O`(7W~m1^y53!V{2KN#ZWg9XD!r4&@fO=BSV|ZVX|UFiEn$pmjiF}d+mklgWjon zp<2w=nPe|&0_Oh#T+(5wdd6vDI{q4vJGMA!50pJF%Oq&1T@e&Sbko!!sNU%hUk6%1 z&CqKwCo}&@4v$6`a!eJ*AyCzj$odux%eI1}yF|Bq0r^!<$|R$bp~NA7cmQd+7m{7pdLzK#U-l!c1{?cLwFPuq8hyjJ=)HcjVh&9QuZ?CUZykz z>UAG#s4DOy@-voy{6GB{8sISTAtdYiipwxCGmL=pH0imzz~PiYS5i!Hcqr8XEyWQB zM6qWXC%U726SumL^>gcwOwKB@*#2Dac=LxZf@w&{z=Vy!Ks{{+{7t$QQ!pml@@Ty; z52LJ#z0a4)c)_|u)c0roLp+!81iXwzm;>>g^!~+$6I*y;#cLG4=xvfq#;icCIcx() z&9DNw1c;QG$1;U{BbVT1mYM}j!58$Z%IXbX1-(Vhws5Ju3mo;>)ln z(BV>)DO3Fg?8L1XcEAIE0nAIr?8*Ys;*p_$>8s5N`p_sKb5#0mT1uJYr7)t z*X~n|s21|JS#3PcR{B!^)?VuGQQn4N=|a5iUgYhY3hyFsZ$5(jeU`T^`$XOM4{`n|5$jY*uwMFdp!xy4OxX}Gzw;5 zvYePy@sV8eLN_;EUP=MRSeStCNnQ@&Wk#!)pw$-gyYe8T__G2dWlDBCg>7sz|BiSW zf8#}=t$Az`b;vaF1^2@)*wNQ)-n@rJCLLy{%m(ZtkBz4kkE@gU;BlcM$K7Il!I?Bc zcc0?I(yho3NgD;dsI)h=vU0{p>1lo#;>1?K`ck&SKwy>9>iwbXE_zpRHVinM6&QtD zY=6tq?FQM_-`4Ie>>^S`>8>ty;RY{k1MFmAMwd6P{Yv!f9|23WhyF{iU7mR2kaiv3 zER{D)EzgfViT#AU$)>-OU9-+e+x8dMS9sS#DgQl62-h%KCQ-M7cde%I?mVME9qcnu ze>MjjQ|o+bD~mn*9jXFntrc%I|8nuS=#0bTuRr`FiUe)wmUz!R_J?mpyVC2(xhR1C z0ehAE)6f_DE_t5L58bq(*f)ObS@_)zcE#o^epl{~y^L?E{-8{5>ETF_K!RGfzc_93 zvVCE8Klch#@v_a#N!d@XXW8~BeX;2|NU3moJ6du#@9-~`oCEB{z zQPOr0D1fqfnKE%5@(@5ih;1b!1gF0x91EY1tDr_ zHOXf*g61U|F60D(3W{4d1R!4IM!$RpS24UGb2%8DDB)77#T-=m+5^Z`iqHjQ!dkXf zcpjcIpD`a|K1MQo@vSOccwUbDAa^}5&ACF)a~jd9=-dR(Mm7=y=qxHCfac)CECJ3D z1l#Hl!&s^X8RT{*6Kd_)AEx3&Gb3*2)XB$nHDkn`_>Ss|Ssn0Pi0^793c$|;VkgdL zbWQsn%FRMoGfb^k4A0iyeB`Xhq~n45&mEst>yCw!fa8g8D0!>^Vk!^nqXL!t&C$Si zJemtXYqH?yIWRQ#8@xzekIklks7lQI`*ZW`0vFGo!}3_){o%j9F1D_R`R6W>+%^kt z2l#ZMi1q}y+ek^j1a0Cy=A6Jluk*>GZ@8qNnH>o9c|JK2Y!G$uFr*GlcPTl0-Yl9k z{Y~tvENI)CbpG4J?CX3onuWF9U{y>bYkTsKIiE~#Sr&J=U&N;7QL8~sM}i>s)cZ>8 zeGq#tc$IZzlW&Tt`5YFfDdP~6q|fUL05K3f$Ay#4wEVY`e|KYl4?7^QX@c zulNvn!6<5piEpD`nhYgWoIg!a;frpwODd81(*$?$VIaHZ@{?xQ04(Ubg!@}(QRUgw z16ge^OKhjkK^E%9Ldz0R6UJhhuVv1v1 zjxrfm@@3k66E2K+=~nkfcvpa@IpFhMIz)4jt0Yqb~23fS7(dn~-%7 zmCqeyLlf1g&Weu{B%lKuU~MHuT>I>d-;qv8z1zX7^{PkK4F<{6S=ap+u#S9({44u$ zJnhF(FN^&M4?~gI5d4w(7WdbzJDu;}-=p3i!S{{Ud)pqk`C)$eKe>4UlkNDUoyc!+ z)~6N#tAwN^lbQooCR9XHtoOs5T~f)z(Yio-9Q+FMXPLc%4V59xZWJ3VGX~lwb@`{j znGkv}zjVeQYRa5%fYd62*SGlwiI-0A6@Xf-hy=6e|Ed0t=);ab3C()-dD>kx`vvp& zrVmr7H38HbD*V$<0tp%-?MueD5j}8M-L~Y^6_R zE7doNk7r+GE!u|oAJXyaE|m+g+{lwoz;o^a0rT+!>yK`CjQj%>8Xz>K=1OVaA0C5z z9GWqhyAYM#re!K+=u#B$v+xxgtP~O3l5MDn8y;#Um7+(5hRnrc!M|=*Z9-;{qgcdU z**k7!L=sed>-->LBe@t2-km7CuuyX_zI_r~v(czpyrR1k^k!C$%? z{Iy~IaDP0k1I-cu!XYW9Jq`vWgE(nX9u@au7}~OQj@hFAChJ6xGlOlm7O{3x<}ZMt z2)8reQ?8H}%t)1ONSX3zce}6t&!b>NI-I)y2sqt^7wI^Sv7>$TcZYz8x#lQvEgT*9 z<{xtKPvq57Y-jIM>_bo_-94ljVh@=ev=Lv$X5TlZnD#gTnN)I55y@NP52olZpjJgU z4mX}c4ea8DOF9^YgW+m4M8#L&jMc}t3 zzec|-NvRr8D*k9XD4fEW8agX?wt!@~N@KIoX9b`lo1J=~kJ))wZrZfDbiu92PbJc) z_~A%;xtF6vdi>_n=Y?k201B<`j@{Jg*-5gCXrNUb6=X|n7O<1~qdDyEg>wEk8Qt+qdU&7Oy{tr-)RJh6> zsrlCjvU9MFJdl0JW!Q$?A@p`gF1&it9CS4wD48ztPBNR310(wbvY4<~-Q3$zMXDiDTL;CP5~Xk{aI?XzrE z`xyY14B}Dd^!@Wt+kz=H6qop$8isMd1P_Rsbs-daPX8(UZ@9xY0A*HpF)U=h>`*6$wfA zdSi@ZWLy7Df~Rl$1+K_~9}}#MP3a9k&){V`Y-7{WCD|{4-PtMY7h+Ej{956Ibar%B zT71)uj}GSVO~1=FGdsTd`zLzBhaKOv36oSV-R8+pDttiW6;b0|fHv{ILE_;l2uas3 zwG;ohLY!Y#2X~ALHdVA(MDA z&1a;P=IEOX)N@XK)BeA&Z$<(78JLmHi#KOQ)90ygmSElIKhrl^=GUQL=EjHHpPbD6 zea6S=t%8s2^XoBiBqbsU`wMtD`_EQOA?-<+pPFPGu1aEXC2Iir`09*!t6f!J<#hyv zEZrX{1@u$>$t?7md`oV6{T$G+=R2n`e{b|s@zw&ONkymc+afeODI4sx6YPP4I7ttC zHHq>}x}~wRy6m5Ay)*oy^Rm#xcPr>I3NOH)p67p%1L~LF?3H^xZV2=DMvoMG^{)=0 zMeplz9@?b!zo3@1wN1);-0aP)B=>q;*Yy9gu>$D?Wa3uQ0N8;|q7Tk+xA_8~p2_F` z&Gk6q^YdDd$;87IiU-vlQee&HnZrRw2e!AKbAlYBRe#;hLsDg;t@rCsIzkxYyqc+Jzrk z)*mPn?|`nhgeU!pZu2@RCFccFywUXeN(=o5${`t-I@|sC7Tj%yX9#$WE#Mz)%EojK zCcFP|A_}_n^}p?pUXx|MQU%e7&9UYyS^d#m^OdsH_{upq3Kn{euejsS$09#ts9EAG z+4moJodwPQdNeb>^2(!vlg#)^wivW#?+Q$fuVme}{JcOc^GHhB2C*Ts5zxF&{MBqR z=zpQOZDaB2ExOpHDpE}LD(Xhp-VGZ{{7jkpIx*-!0_D&YhaZE^j;F&rUy?2UY=WJ= z$Dg?$$Q?fsejas0kMkKGfR?Kj@EmWEt|} zBy-y0NVdQqmy;#%$H1c6*gAmQbshrjohI!4P`Or?Uc5KKSSFMfkwz^TJ+}#_6k+H@jdcV;F~dH zYE%@HO)hp+&%I&ES?onO#3w>!D%x!OM7;h47kIGGk3qTx=@}tHj5NX>_hPq01y0B=2 zqJqs1^8sYnu~8Pc!`$2s7Yk>7DgQnCS0U!lv1iu3pI|cc_iE4G{?%w}&>_kM_Hhe6 zaFl!nyaLX5YH&f;iqQ&wcM^UdELRz^sTv2BnDT~7N!w<9=VdO%3Pw5jBCg0de5B~n z2x3;5(I2jg2SU~~blqI?Y1~7i>7SRb#%Anw}av2OV3tlpVh5K?SUnk)pPbfZyr(k3X8aKf&6+EfjA4so;(Dhnv0tPlC7f zJ=qlyaR5s6^URL4{dl&1cHinC@yt_D9q@&V5{CDnq_JW1X)?`PApB<}2f#RCrrO2k zx+N0~wc|!Et-wkiHpNW1Yvc#*}uFp*mH(nMpe{b|iS#O$pzsN=Q_}&PIAkO}o-%I|q{WElh zKac%069E03cnK}bO`nwbC-e74A0oc;V3o<7{3RA}+dJs}GA#Cp}Ed}WP)LKJexKbv#Y%Pn80Fn?}(snF*!_X$z5 z>z|(GiyI0*2l?_r6m0oY_kE>@Ljq>~b&4D$bhhO>ZJKS@j%UtXgrF-;xXAwUR6l?o ztlS>ehxP8@rFN@#UHc!jDj?#Pt)!dn^djAO?E#B9iF zz);hEo&A?y@Ka+873~)a)Sy6#6wsc5cx5g%1PH4&Df0#0o^IH6_0`^IlebksL{52o zbLrvH>jCEP4Q46&`<8o1Fzp1Y7wD^Mi;f#4*&o4LPj;XAiy7mWiH>NtJXL3BJY&O; zUFhG`PfGwDn_j?o3ugzLuXg4OmMcME7G33<9i*vFDhnndU&^Ebs#@t*dqT>M`sBntQs!%E{xtS~{Y3D9%g&aH z$K_T$$-oDEYRuyupZd2f)Eg+GxAJ}zn670X^UI?0jFHh>J{}CTPp8^zf=>rRa>JWVuO8`<&EH!B;Mn%)QII7O zyPCw2FoI2=l=#@)ON2JP#>YZx@-4CY#mF!5MVzTgIS%CgCRclc3(qrCx0nnc?31JD8(zDS-BcnF>Hj zH=Rx7bVQ$M#B=81gR?+e5&z2nv7%8K_fD{%IHTi{QAUnO0U!dC5ZSxt-rg){Gc(YT z6p`Hi+IOH=*iHBTwYh+DtX9nz5pPa*4lmBQwMRnnxYxv5v<(yF_Wqucf8z54BO`)n7=Rjjr*&Q z`MrqgS6}>xk^jmpT*H*1&R(exlxnc{*4c3P~ z^pC*Aq{@LmZ`;3&{qk+hnq$7<#>YbD?=wE8w)O!Zvx$!rP;VwaZjti2@iF@+|2=$M zde{Gx_;_H!e+3`vK27|-1VAD5U4IoM3Q`5`ZKWQ8$n%orM2QLIGPnZ>oohh_hG_?xtLtM^s&0fjE83dg@sJHPSH6++McWR`9Cu-2QjeXuY7 z@KLT6-oK(mFZ6U)c!3ez6F|8Pp+u_p+GSpM2g&P?5KqRjSfUE=2Ud(TP^OV(E?~d5 z80Xr%_)0ZU@w=>jwxnYG)Z!;WfhHpu2*#Js%lk z-c2;r2WsiK$YP&(sp5IVo5Z3FFDCWmv!SBwZq3p_DST2|7cyU6)h_c%agMsoFRGD+ zPX#+@!reafakP>yn^bfibPlMk)^=&{F;;X_T||ML*?nl1u&2_fpe2RVuRDjT6KsjE?mSRAKuq)!A87l2 zZu;Dtq>s6f`EyanjyE>lD(3$SJ)D$towtVkG2S>@3iJ?fyho8~jcY!k+x}QGbkH|^ zXNxyh0e5!%tVcX8oSU0osdzezC2~>Bji)>RQ#^$~A3T*pFjDc9I)4>;oBX}p^tq0j z)S8c-!u+|YLp;fR>=wb(S33*%^Ig;;+2qY1K7==|%wj7&&Nmu>uNQ7+1=?fkypL)A z^_TMeaJsG^OM8ahKyLld{XMq)Q7z4OpSBQrRuR%xhEO2b>U39w6*ol&B%oY|Re)hk z*@+RR8kd>Mu3z=!iHbc)S2Zy@5k2Vt6ly>pSgOVzPli6Z2%4LNbo(Qv0CKkbk{hh} zNki-vlv48Np4}wR3;r>SJ&=f9&*#1JFF!myJvZkt@U(TMjVJzmTn;=jOFEt+Qb7_= zmn(ezTX-7zx#MX$v}<;OIea|1sqt^(X&YGkzmBH|zMC6QZhIGE{=Vv`MJ>b=R z3Vt~ov9(cD1rCrbd3EUz+|z}l`JrwfHmKo#0cw)?gXyk;yAGE<>`|Vx*}Dl4m7Ml2 zbm`&IYcliqm0oB6{J%)Ag3p^?rI+=AUXy3%rdO(eFq9>7QOxZh6x~RwaT4@z`kQk; zAO8TqB%j+qIOCGTrB5D991eZDZuk%BGyC(Q&u%a}r~fqM;@tFc>!&v_>H~Fb|7oXT z%Nu-||4ct&E}B$N583k*-S)@-8~SM#7@w-2vc$LFoRyni*I}@>zxe?3=Rgyj#VYep zKO?QILH-9znSGm&T$E-0whB;))w}0!S^VucXXYNi8!rzqe~$4ZcBB05Kj=1IK*9gl z<7Ej%AtzoQxG*=pq8-=Z)YgPpL!*_wM*!&x^ zHUl{E5PO1BEGR_8ENwy84*|A~J^l3NoBqQ9c<>s#(>HwwBi<5gP{8Zqynw6Eeb{e> zW#BCHiEV&l>}F0Gto_~ZKyhbvna-3{_YE+1XWyD3oqZU!xThS+1(jV{rW`mQJvnXt zzGVLU(>}=K z*W9`{CEjH3;Bi9!E)~9}HxJXf|G|b_#(XiGe`x|psq&abf1NV@@aT15+F{V^@8Les ztFQiee;2hr7k_*$ppcVZ2d3tx*E7JWZSOjmKNr5--sSxv(hMem{w1%Bb$(TFqV?k? z!6JnfAFcgF>o$q{9Z=tEl!dBxJ0dT$Fk43`UFuMx(Tbs`U_fXGFA8PtHxNU(hgF zw(}h1XHc+D_bC?9V3weSd$ozb$8wYaGMIUmb%LJlKE(+Lz*~2bC4UQp%PQ^-N3uO( z8^pw(heKyhFgv3H{r z`Zkv#MuHRWqsPq*_(%=+F+wllJ~JZbFUukjE{lnLW*f59o4@|9>}R_6w#Q}b|6KC( zEmXtax#N8mfO>4Cs^40l;o!~r6NSZO7;NQt@s#yE6n}gdwzK#1P_iEZ`(P%JvbFft z2f&3pZOlQaHkTc}l_a&Wwx=d9<0F4raeYoo^1$W51@yXexv{JrU`6uSKWI-yJU z^C~CUUMl@H?q0c_BzfNL|GDU4A7)Z+Q!f0SmxUgy00DbHr_$fq=6~nsric4{<^#;% zXL{UnE$N{xfO^3GZ+|$bv|AUDYJMLzK}%H0QA`g7W4cO7JBm5~cZaDFBD6Q6f%p?X z&J}>Y{De=2a?|_{uTtp$Z}TVH`Ai=~F6DgYmzMS5zh8>cU^_NOq;6Zt4XssifrgYy7~tlFW39+39_YS7f_CrTaYK z!MdMS4BD~KCg6N#CnolU?$oU6*AO1W_&ly(TiW;&#eW}EM(p06_sw&Z0bfM?3QUVO<#9d<$FO2}LBc=*uGpV+4R!-u<24q1IS;cRqD zk?q!tha1%k={riK{tjb|`zV`QY+B6u7Kw;mV0*4hB+|R%8wG;0jivbARB4<(fqWT- zFR|yyJf)x1eSSjTqohhmOu6|}RO+1jP{7P3&(BRbJb7+o{yxidWQo{=ba~!Od+;69 zlqt`(ZU3K@=L+CFMV`;Wd5ZtOJim`$2cSMbEP0mw_iB5i5dY<~EgVk1Mg)rpw>@r7 zFV!xsq&wQ9Kk*Axl*{jQ`&XASf1mL)Ud9^C?q8kcsNhAOJ?b=#%k_M!Cxz|yzc_5F z%Z&I;Hveh@0GsMxrN(E><>PbH;sNCmjidxjNB%y~_u5(Fiztyk-y0ev9)efM-OvHo zZy!#;=n63p^EmUqmJ`oKz1YWK0X&|8SUUAk6umSkY$}_ckruiEM(5)M+7i7G?s* zI;D{Gmz?3I&rgP-JYJ^E2TK9p|F`CY9JM*SPNrdGDCUEc@bvG_2ebHR`Ka!2 zeIP6W7+yLVh|L@D=S|BG?9#iRIet1@HTDZ@vbs|6H zv2VX;v6`&B1trqu@unXMjWXjeRgN6y{4G)*4arW8^)l_;BDr7!W}C zNQDCr*NUobf;tc#pA`;Y$qt8NBxkID+x_foJm|++^zEuz;9<7Xw+atJ^Y_R0hzHIu zdh?f4?K@4i*@oJ3>DLQf7+J{tz3Er`eh>L=zo{q*R!s=Cb3=Hk5P8`Z#D`WMS{i6b z_-|N%EZS&T%!aQ_K@R+$n!L|`iHtwo2Ikqun>8=P26-OImYYAy{6EcSUo9_)%pSSH zg$5KTbF?_M1^jjXVwoi3052Z-OM!*7?`oGmdu?YB-QUhqNTkPlp^cl<=3^?#1=IBP z3jN=W4@R@#;kGk@2TkEY-IOA~4|m@WNl$>N3%Ngg>#-sf>HbLIjHm6(SV&4?1HyFAkA zX>&HszYWf|RoL_2__tdXO`m$3hjpU}{2fBc9UCu%7{q^u7rEx6b?i`%_22|BZ4Y2b zt^uUPYyb6qk)@fCrK*98e}YO{sFt6uhS;glq)Qa;yw4>H7?7hF(R^0L82JNUWU>ZP zq>&l=P4ILF?^_$H`qUY_l8Vuq-)H)whi5OjvpAgxD}b=rW(8}}EO*cAVSbwBB8oBS zTzaSCyB)mA`8kW62IiUO)m6|tpz%b*lL$n1W1y|Y*rvJR&-li8IPl?slVO$?pgJSw zViOuVN*%r{MlSo*-G_r#az;e7E!#H}~bOvvx~8m*!OOC--`@@6LU@|z;0%xB8|Dg{4Q zZS#w`n!n~SWg`rfE2p6nSBGX5k}EP&W9O5WxIe&O<79j`$m$BdB zMS6|#WmdrKF`~|zuL%WKj~23#KA5llA3SB9uT=q?7Il&BYGiXxTdDKr%l6%an$?|8 zMmVrdaibj78n*{F;|W4hVUAx;a+!kCS!@}8O zw1h<;fHxt-!i0KXk*qpWQK$HK!{G|l62Zhd3R&w!@UcJ+s=HE02Kcgq8q^jFtpAK< z;3%;RNlt8f?@3T2TpFUkAWJPi@8pz)8DlhO`H7wOsQ!66#zAY=2;T8m8_m5;;mAD3 zKn_F4G3beEO$xfPRL}E=?@;|^XMiCrCvmw6?XoNLTKw6De{%!{Xi1sxy)L%uEz8yvzANsXv>$G>CWgl9aCU5ILFtC?7i9x>s^=bz%U)2~xpu5FH4HRP6;}HlP4ryz$0@g*XGblCl0A|^xBR&Dr9F~Rj)eH{2xI1l07(8R$RB??+xqBm(6S4^Mq+^Iral6&@`Sqc)p<()jSr)I zsN3rg|4zOX7-Q#AVn@uyUw>pZYqvDY`6vpTuWrEwM<&eIcSEMj%*(%v(ae+M{Ds^L z0DXyM()(HNIrN9=HW-6RDismjZT6cbQ=GyvV{c$P;Wf-bGd>SUCpSjP>g$p#ffC+c zft67B`0OlfgBI-}O z?`7)r%Kg(OZy;nXx9gEWJ07C50yXh3HMOAAGLi(lQiGAyb0oXXQ8PI7ywEF&(AGR= z63fmE$~Xsk(SullUw=jMOo>4)>K5uYfYyWOpvy8d#%RUg5SwZ-VC8Dy4Js21gb4V< z-$N%KwdB77)p#({^4MGa(nBYIKAkM~hu0&If%_fMN`M6+CZ!hHM5*0$yR^j1AOZ#g zM!3a&hgOUZ`k)5|40aBbnipskg40Hk*u_c?3tMNC{vdoSM};p+ApPNc**eP&SByfr ziWENahk1OVZyx@X=b==&(AhFxjuVuid!UdF_9k#?b_JHwL9`AHp>;a3 zsI~#-cJLJT3#(T2BVY&w3VlzZ=7KK4bq2K=rW?er_VjiSmuVv%Ub?c)WnriU{0-6)glzj3~)CL>%8o2yXq0bm+C4ay?- zd6jJY8LP02VDD$_kv|JznR4;R9nY;}{=?K2!aDy}W(;)nL+$hq%V+RNrO&r60P!<# z$C_T;OpniJTmSk(Zhp%CK+AM2Wd5A|lr>QRa{>rJbxFNIcipqK9(MzPCq-aS75W%y z4=#cHl|uRg$X{#>GKL|q+U8>2d!-i!61Uh}U62QE(NXT}V&z;8c${)#A^T=p?f^Xp zj?L6RG@Yy~OsA%Gk>_c~ADU@KS`;d-M zV;gjp?FQV9{GeJrf)xBs`+Q}yVHdeoK{*4Ceb=}2iKlZgtpF_}kAT;>pzFWE*~mfX z_icRWX#?QT4klK*cU@%sP*x9cP*=Sw=hBgLEok%3nI8j-4dz2w-~<+M>nzs<%(p!rC{daVAk@;fu+?=W!x~RyCUOd5anV^4&+2ZQ zH4?8)SC+2P_eo#gj<^6v;l}$4z$O;L3*gJd98)sLa6{#xt*np_~tT6MWO-PBOGQ5xA3JQ-@~1pEv~QrXg> z7iDXlEc|D8JrE5}5gO;pj!a1+Zkg2JBwYy!l_cnC+z{yxUk9#XO$rq-+1g*QT}jZKx(1i zSS{U=z0f^U=!qT*-IKi#qtE{EEop_;SuH)1y%6VZ{_yOyLNkC|jLlbDCv;R}nuQf6 zd*C1l$G*v`e7C#u%{IaO;iIKqT$n4+<3$u{T#v@q>6Fg2STpYPg3f+)a2!oR$doqWt2J1amRhJyXkENS- zw`@?|EY+7fLpZ}4LSyzJaF*#0#|k(E5^6?zEBRSlQK8HGSxg9JbD{@AsR(6AS}{sk zn1s68>e_9pO+~0Ab;HuN^PR5UmEN_mG@nj@W+`@TU%SQts6TAN4Oax%mfp&jv$jId z+#kM=#ri@3O|oC_wDLiEE8C@}^s&sBV&Cp#EB^3Mr-8C*0=^_#uFl%PJZa!vidJ8S zA(8R$dXYq;WkPx@jB#X&)f{Oh?6fiu#ZbH_v6?N}r#h|NlHSVSq^5LY&5~j#IjyYj zy_Fe~{XHmj3NH&2lP_C^`cHQWZ`hIeDN<;i6e0miRkkFV&r0iBq>( zDyLMWefo5N_=Jo?)7lzPXqrEKfm3LftI))W{;)Tr(4@8rs-@$dLQ7qR*b--%ZvI5t zr?t`HK}&B#Zz>VE!BvPYb!HTr)K;rnTFpX&oZp}jd3rAkgEBO9D;-_jR)hTh@G_^3 zhg@y2V^cEPnATRMI@aK{v90$uMoAkdI&Hk_YJ=l=T`ICWH)#raGg6Ji1c%i){%N(* z&BFFLk^mSkZE)pC(dsi-8yv^O8Es5!t5D-$C8~|1XDC`7kIyV^1dtz*k$eKIoLT5y zVD*_}I5(sINp0mEgNCbmSpbbFccihipbRgN-_zI_AJ|#27EgQ|+FZ1jt`c0;O+Jqu z?<=@7>uY;Gy0d^%N!DCxI$7Epi5ccZg_s)pZV*aV;G zETB%1N9>NpBjryXFP2A&j67Z-j}!)Ztd&P1RvtNx>ntGZFC_(Q zz^d`kR#dBn|nwnXR_rdm$IdkW7*Ql zx@_s>VYYNKGg~^jnk}9D%$82JXG^c`A)TDhmY)F0mQLnpOE1r!-dXSnUJxzV@i_Bh z$dbNQrbYDl-@!CSg8ph&!T=1z0;R@Dm`lX?Ytt<$|1jUFXnh_xvT`Q>bD$^G%}^(< zyT2X{U}6oo-(zk7@SI%VM=oY*-EI||p%NG=)YAb)6c1%lfhEy%<=5H2g=N<{@GVQOM!?I%He0$C&uL7@Z* z_-oW+EyT5~pySOf|J6wo6L1(QDLt^%A~~ve zYKX%p32kU(k5-r{zC)hldBG3R&+?bGCf+cDQ@WTER_=-S(>tPdc}8)BxgtA)UGc}0 z@zU0I#l!&zRD7hffC*HN@tesAYyVN}4d@8esH|?`Q(~QC&;NVvdd>gg_O=$hwL?pw zu1t+fR&ebG`z2-tiq4o7D8^DD67(&JlKK4X#3DRDw+c5%!FyDGRs6QKbpNrX{=@K>f;`(-*5ps65mVuOx528Vlav~gH1{h)(xvEQKtBiV1l+3{w z8Wy%92zX20_{`(56y#u7@jrmw6&mBYMQhm!0AN$0N3CZ~!Agq4VmTaru1lJ$`g=UC ze3rU>}PFL_|C-Tkzqum?aJ1I|nNnP_GG@bX1X%Rb>>?VY9; ztpBuY{Sw?UOe&jQ|J^eKKfe$Ty~s7?OEd#?b~!n-^tU$?No ztpUgeD)k|zz{#9cjtva~5Vame4Yk*zsY0_I%ZSn*w=W=@l;ca#WDee$kKs>Rd|2Wa zBaP8j5X{Iy|BWxA31e&xo+|f5r+ZtBfz=xqA8Gu=n}30?dYk|H`$?#dywIk?>I1gA9)8wC1sGscxVv9K(gr7(w zZ!2>f^`)Z9N<35q`wBtkD=?UfXyd1$H$Kt67BXu?dmqD&LJ&0nM3!I`wN@2KEk?M8 zi#>^wPX$QWXQ7pZ3OKO5(B_fwN;>dk4Cg|y6D3QCJ#SzQh{q0?{IQ5+FUYoYc!g23 z{eBVNOEd_(rIBVfIaa)N6zWGy13IkrO8spiX+viL-w+1oZ6H9@TO0L85Qy?@G`$=5 zdd)VFqf>f^G|#ZjAj-+1yiM2}XvTvv){Ce0J|-pn;jbg}dS*82d_Xmp2#^r!C|vdl6BmBV$oD@u*=Jnsjjq7K zq9y}XXicGyi=x;qjyU!B&HnI_Eb(!&E+ViGU}4N;Kf$5sd7)G{kp;Ndx5VpColkpC8aOnwhN5^lYTqwqR*W$a+7{8kgH^x8Z zMoK*D#Pb!!&VVRHXm5;fdn1p-`v$*df4~1BEH#2U+aXC7Z~rnC_8OrKFFAXtA>RBN3F92h3qu{0}YY?|*1qapYjMzF()U2t+|is00YtMYG4`IMgfAG%QWd5_jvxudD&VC|R6wE>aGwPQjt zcoo9Fmx8g%gHkK@Yi^Y<$^Pzen%DC6?H#JUUjlNGcKPlfza7cR{O<7qe>Q#RNQpkv zw>&3(v7`0?>NjcwGcW#d`$qHRco*e+dMd$yW35nrPs{QbRR4EEuY=ovSM;*%aWjaH z#Ap2v{TQg9SR6@2ryNzPZ8Xj;tlkC|p9_a56sE*H1+zgI z`0Ce!f5*CbIf6zIyx3r*ia*cu+fWIXR+ve7e#x}@2{g%wfFGaGk!8^tUfpBB z!Nx3z>2DxAT>u@r=$FW&Uj)saF}~=O5uWJT+%Q?$O) z8NDc4zsfu8-HmVbvl+z}N#F`(R>M%cSj^XsM_BGx&;`l)aD3J!;A2V z32DG@5n>u$U9|8BEO^(-vUc?Z@4|c?!m&s5jw#am&Fs);6e22-{3r83PByK7>Cdr+ zXv%(x&%_s-F@NFbQtNYx^{H8(^R3T$*5@4SbGG$4!}^?JeKuO36RgjA>$BGStg${T ztj}`mv)KA9l26Je|KnK@{W)xS1zH(|FmY)tRnPR$C!gsXJCOpN@D2D=pBzG@MTdX6 zyYnoXHBaYRYA3*1MJSQz^51u)b}DvUnYr{g=*^4O61WbD{uB(i(J`i97yQOz6=j{DXVuoWt4!}0COBU0$*T?n)9@ia% zjB9^}KmPHXY zhrYJH!}&6xyB5Raz9(}$4=L=@x0+9V+2g6+wXnh%Qh6{sE??gT$8zyEuuJ-Y7(l%< zI09NBNz%pM>aB}*4BL9#u290Ws9*!TVGOZLF50>tH1g=LEI&Q6A3qs-0nJJw8Krj0 zA^xVKQ|Evm_9+u%I{9%nrqt-&d}9Rpv0nJGdpUlpQG1xXwD6X^z(j+&-p=HOwZGmt zrwB@|%;E^X1@G2(gNUbxu5)<8^Yo!}z!RKC;%1P;Wyo|eWGafLFr*#{Juu`D7-Hia z^Nk9_2Dd=lxDe_kIK1-l!Xm0m zi>$nVT-{_?{bX>hF%D6Z;HjPCL?YvN(B5NyK{}RfRydM)DT1YOBV^|3EAI)=6p<#{~h{`oB8Q{oD{9g2iO-4Rf<4`hAi=-P5kx800*W6 z9G3NSzN8=IRcS#?S1=x27~#!3u06E(80G)+J^D+N;sd{mgi*|B$M0w)eWAVi><|4x z_D`6(LmPm~eEk+N5}nN7FSPg5K_G&izfbjVG*K*1iloK!*dBa5X)13~f7Ly7)gg^7ImpSyr`T$Q8Bf zZubv&Z}KXCv9cZC2z-nF)2Hd3fPma$fFQ5gfOD?K=%w%-;0yk6%$Y%7yuNyj{;GDi zad9E!@&Jtiu?>4j)n@*p8}eAySu5M!^bY;(!e||Lfr%E^p<2&{;*1yS2b6yis`KU1 z@nc)%a^@D7e8M<&q}Mx!^>#Qlx3Np{yIL@^3)T5dT4br_S6@Y!Pn0h2(JrojH8?mv z!_oKpbH-#i@em03Yqx9+Zwu}RyUz?=>C4lG*frdW8pI$2X=gJuX1>h{#vbGBLakD- zE5!CQ^EWu)5r0~L2@4z>S{Y!57M9aRHHhn3LF4O~=TEAuPg?#I*G~{i0Z~}*U?>8_ z12AMc2#opdzC!#|HkD6zqHQUtqQOTm>@e$5m6{JtHco6IJN9U!LZ9U6omvCtD6Kam zsq*popz0^I6QdU)9A;S4-)wnJ}i4l2l*@DHx4(AWp7$1J91^Aa*`%&u>ZAKzK90^bN9Wgd5%JoyOL4mD2X8_ah;?7-VvT^@taVDRzy zZqfrYq(;3v+5hTUTR-*xbU89ZVI$g9A1I|Cfx}H7<^6NmM%V&10oVq?DcuM)1KG)Y zpMKc2<17b#XQ(qzzu2pvrpwThPQQrBjH0Ob71XFA?=k}L@uGi8e^1a)Yi zsyl;6MMoWq|A_`25hUe!6>nh`QAE1Xjo57Dv(yIZt9M|>Ik2cvCG26;tN@0G$IA4L@gddQ z)qPdb35n`w{nvA!K-7EGv*sAB)2j_#us7P67yo;bU;2q`SwHc1{Ee>w{@e4aw=Dju zf!ZSNZEVXQ8H73*e5$~B6nZ#>&H}#Wx7fR|cEh$rEuwn&Gm(sqdXL2i)=Q4N`=tAw2=U&V`TXS3aIl4OfSSNE-BteZ~D#^2ny_^0kmrCCo|r zf_m6XRYpo9pQy)XR)LG-bZG--y|aMyV6E}r5^u1ym3z$7P$GVt;2lDt zAhNkx#xw%V#G2cYo%x_rBDAj=0E60^6)4%z2u<|xKvY%PuD^ER_tB++u@Beb@xY&y zBY_JYTi%c-DRi$-x2fA))RcAfDQu*IbkD3I3B$1GmVTFgo80r44mij}f%;4M0}Q4hO)QLQ$L`kB@Ii zru9kXIS$pa4tyH8KVWNcb zd6;BMh>dIWBXC*oXf4MIC3V#MsF4AU7(P4egk!efMQUX@!|VY#i@zQ4fVZP2fP8~hC(EzK_^Ux)%M(>PH=AvFH9eaFA27FRa@?bMh z9?MB~8O9751|&o~&!{Vwq!w0FH_!iIT{#BWSvQvjLwlbIZ7W()SFR|a!U~C!E-6mG z@ko8QoSCR>kMRVI`AQdf=GOO<;fg4W1(`U-M*5=ng(p{m!&VZOG0%ed@C2RO2%c&$ z&_(k;&;tJUV4Ls~uZqs7(zjroWpZi)Zsi_KxQwY4JW2Z}jDRHJNGjno5dYB4W3H)K zc%?CZWOGfGM|;m0Kin9#7QI+PZTZ%(Y4 z@&H|l;OCmKiBFs1$mV_=RZr!;8@mE@12tw!st7o)sQD z=!Nch>|kyANPn2;e~e}^4_MQjje-CK82c3zFh#Uy6C2v6c$j|V3urA=$#$cqK`R{G`^Q&aZ zNK&2cSyPnQ$w+9Tf0$CMRi8EFBcYWzT=6Cz%@g>o6l7XiDVtjZt%(d?gk%KPsV(# z`2xw>K!;=#QC(8!HLs!FS;gY$yIW%XaH)c#djo z5N~Tj4^g=fUrUv74-1$P_270`4|YbXbAu;Ww%hWkKO1^IFK^qk?*{*6?}z&7Y? zHQ${&U1Xk^9&U`FP2*Al{Qdgw%7cj)dT&+xCP-4sZ3@~cmK&D0r~1Qd2d>J~`iGv( z!&=Obe#c+`V*Ku)c137Ro;Cw=SP3vh=X$aB zKRjS=2E}CW(ZzH=${pu}ydZ^Lj>qFMfC)u@1PtOji(eB{PB1R{O_3eXGQU@Dy~Hnz zTmFSrAzT-0UIm8`V?EQTEkuK5U7^B&$GlJ_o()nJ>y3qynAmC7spONvk}@QB@_t#| z!V1i{;)};WNVNw7mbIw_Wk2C6xSzovMoScbNDxecfgCZ8wdIhu!FK}C#^}57xBC5s zml-9rmQgQv!+4@K{jeVD)t@jJo~+fMK>URlZw0Q{mQsl{N_t$q~#TjqTH>2J^OMp77drxc5PI8VuRjUFAo_x_Poe26 zcc|YOS%mdUp+8kV@K|1bA}d{dgj%L!JWJ?}ki&kfrfAI_9E#b73dfwtj)-s4>Aj7~ z3;XMmhRk9M1kM9S%~LjJdF4Akg1}z_*I%!bPSeM!I7^Cm}7<_Ail6-(bq8V zY_1vU(MDiCYLuqSgy<6MwEWk8k663uY=O*lITk%9iNWc~LI_q`-n22$g%^ zCRA|zPbHUe%K@t7tDEH&U{Xp!#1AT+SD|;?I0AyohHZ-${)~Vs3<#JOqCiR}>^I_N zXaE|rm{a%~#n8o4{hA6LtxO%RZ;zcpkAd?$450!;pdKNdlqlha9S=o4)zD8WZYTSF z;mHMknBs}N#ePFlCG#VGWOifb1hrGFOee!fN&k|haX&NvHkE$>TmrsC9Jt%@UtRl$ z--ok=Y6ly&#bB$|J~IE)%}>_1#HugUj!eV~KaD7gpN)d4v*o;E(xkYO0gUq<}d z{3_>v9XdP}%e@U=ez2~5WN=8RV?G%|g+$x`*htGk1^d(l59deVAfHBWMhn8#=~TW- zhQ~uM(((s`MUJOpehcG_-|RS-QZ1dz#?X3kC@im8tMAFBh(Dk_lk^6sITeU`!`8mw zBd}9PzzK{$VA;dg)f8*&_p<0gdRD*!$$A$!R1|5yc93GC=%a(<%Ja4N4vq`tiH6qR zioa#C!;U`}nx=Bb1_OuK{dX-)PHj=11%s~8Tikcnc_M z-X&wwj>jyf5bGdE8=MCO2N`t;f^*pc{(u}4wnYz91YrahzhsRo_*$q#eCQ`2Vdi*S zKMQ`$gYX9d)uXK1kFcp~Ewe@!mQn6jzrkVFm9NUjASMS6ZpzaJ7~d|6JbvwweElO- zEOVQV(B1=~Hx7lidG*NwOs3HnRIXg-M+gk&u46YgaGZ*ePCQ*qK|MFm`NJU)hNJ)c zk&yV0J^Ic?-!#ufU)Q7i3BA)i6CcJoto?hA>tl`BdGebu`|UA?m)KA} z9-*EJ{gEk1!HY@wP~ZYm`%tITonR}Ag)R#mBJ8$#(G@oECctW5{AnVwsxWxtD!;n1 zgh~pwFAu>Jk&eAYV^U<4Q6zw5J$TY2e}tECi@CGHMmM0u#EDi)XE^W_$S`uCcvSe= z54@Zi`DlS*BIuDgm-|aWI`g zT>CX-LHt#@biOgSF~H%3pEeK)=8o3|(P}f8Qy(QhxXYM7_y4l@CE!sN*}peUz(8Ur zXwW!DX*6h1kX~-@TS9gS5J-R^U=osU66q{-ZbQ(hVAwJNjmnJZ=m;Y-;tVP}IHEGj zCP8Hsl~LT$K@9^ss3^Fl-|tl2-jeRf{NFs^`{vo-SAFZ&dg|0Ur%s)!y0!dk-vJt_ zy5rhT|FGyex%BRPkPB-Dd)xk{c!m_^Hvh0iPlBjbTthqR!E`=+JcG<+>uZ-Pec12$VrMXX_^;*X-Xp5=V(Za_gZ5CA$JScq^~LWJk&c!TSt^XTR3F;N)-T!GaBujr zzQ`(oYN@2c+76$R`0_eb5X_f{wtaXCZBJ+)%Es^T^7xu;BtF971(*LAy#MMC-jrzT zq0}B6ULy62dLsZ&dr3Ur*n9@@2~pw`SUev;{z6m0-MrmzOG8dUe1mBHG$_$F9eMm{ zdIzMQOQt<33G53rV(`MMGGpbQL}Y45C^KVq$HP=gqAeYi4V~$Uzhwmi9+f~5q%3TFa8|W%X1(g2w0>XD;JI;K7x)|*O{qmFPX@TJgwnr#1?FDH* zBi1gZ^AJvkZni(Z?Yn`}2(0uSdn%ARI4&Ix(es)LQ&$1AKtVqI>tl4lqO`8F&OY(z zQ(XlfR%JmAJ+N4|Y&V`XVIY(1T52bs^X1|jUkeg8CA1f0Brl&B2*(t?z(YG}NT9NU zax+qhRUsRb5SFmS&#ZzJg)g;3rsC*W7QT7 zOuqGO=21LJR{i9OJCD`!(LKT>xu$@bUvEZFp-mT}Oyc;Dgf z_n@SqltCSvXh1Rl>lsp2rF|U}YB6L%!Xj+ z>KF{Qn9Ww>U~9(KVrYHq!M|i}HXQ+m0tWWw1=L%Ix(8s~JZdGpM2rU{ALyJKoBjLW zU;;eagXj^*sp8zaF z*%pQ}*aec8kqI6+!``(E2~l{XRfiz1xPE>kf;h4$BFZ8J@Fn)am)K7DB5Zlz=GYnn z`VL@Aat7c$_$Je`#sFb~pq&U}y9$q<9~Sy23QYloY}o;bz8fmxv2Ee(`@KBUC1{4K0|-h0_E2^L`2=O#}J?@#E7>QG&e}MphVDF9o`?o~D)(OmCxmAkw=6 zgNGTB(h%ZAzSZID0w`oBIx1>`%ClImV;^=D1oX1cAUwKLN6@lG`*S$3I70*y5`dX* z>p`@!z}DUs2ItJuP%g$HfOT=pu=_IT2{g|4_&)BQ}tjazgWh*0j$ z_Y17(qjcHF-a)w54bQOc)pWj~?YIhf;?wC>TWE2mdvFBiMBKji*V?}w`c^yNHqbo`*2^}we9=pP1od=-RDjE*_Cu$x z>R1?$j60udd+)-W_7gjMhM)Rp`+=RO&lz>%uDE?e--5*HwI6TB^k*n70gah~8arm& z_wD><_^HpfQL#I}J*WNkQ)5TH)c)np?}oR(AIDB}4}Ak*;aWA`HqEOL!_5BHr-d(S zo)2pm0T5_U9*m;qZx;?ln>0Ic;3&8asyUhV_O_pB|5k3U`NX2P0zt=)0l)2UU;_^y zbFl1313zsKSVpVUevHvzgS3tTEFN@pHZAU6xzzM26c}k(Al>=s03s?J464`-ZI*2w z1=+k0+dJ_czW8|THQAm*n}tYvvkHF8E4ZR#0OMIykRX?Rc_7KtNYb{4ea4jNouxbW zVQ{=8coN#O;^Sbb-Om)iW6y=pho+aVX-cI!Y1r>>c!hBT*qy1xD6egI8X4uLA)+0Y zM6~uFlyD@t8Hq?HM6OrK_-fmc*0viXYzjJ{`!rYqg~0Ie8GK-nL^K57UZs;Ry9b|2 z&f6>dY5u|VeVj)i5igv23rikl9@gcw>4DO}!{CJA(yjqSY3&z7KF`wZphI-jTQ9%F zRLJ&jrazK0NfLm)K;)!Tg-3XwbZ(`eR}sUN-;X)*g=_GU-zdL+(z_54(f(L-ck3RyIa5 z`z4c~>J1dqLCb49q{*!A867S0ft6o;JQK4Hpq~v@cyeuCo>yQ#L0@)MVK}2zL3X78 znz98{)P3>as3X)w=koY0uLZLbDK%354k>9Bn3ig9#0oYxE!i$jE|I1m=RIo6cfq z5^l7i(sZ`x{b}OD_CZLQ@jWB#JgflWoARtd41YvB;K)Pm=gIO@^J>>wMD)mWf|ve| zJR$l3Q-w7Jq*ivjAx_p5FvIaIc&R=)7b1re3f9T^;`4`e^o<&%^b%&#zy{IUC6>Un4?butROwC$!AdbSZ=5+ z$&{mja{QBZLq~qfsC{s?^cDsm@G1hvD>#f;+vYHK=*Swkrh)E? z>Yf9F=mX`26!RJwF&xTsQ4Ns+;6rvo+6a~xn%R|hQrIO{;60S>+hbh;c+mWmxMLp$ z+t(NVtG@;OzY3%egCDRruwIUe-+!Q@K9Do~UeF8jnW!LGzl`5uFH-IRem_A=V&eCy zZ(`t=`kzr$RQPf@d~@UqMfM7T>g>o*c#8TCz>fnqFgQ%;n3N>ffl!N@S5ocmmO2YHbc^p~G>Y-d+K+Z~UA>afg@oLtAkXoG5J zb?7>#<8*{{$qCw*&MG=c_8br;XQrbgQ5awUzcGy{@T2D$zIOTEWgW`kmM*23KY>yK z*K;y|$Xpl1ciUdJ6fzLw15%T;?_P`?#HQGSmwVvYYB^)Xem>&(lI|vS9JmYmuZ@ir zB%djw1KLIRYo{1Qdy|*%05UsD(H?$xPe%@LntaP{7Mj$R!}w&>uJ!}%*qD!q)rdHC z2vRfSa5@AXKIPw@lY&uh&GqTszooe#DgUGSUW!}rj-$01?FsDtSVAW&eX*HcdV|)_ zfeZnNM_I!vDK{<}Xiou@nP3q=EOw+Ew!d`jV!4^!R!T%S{UvneFg^GL9Z{fWwSUq5 zFd7wXEth9GNk{3ldnA9@Ab(1r`_R#jGE9@tW@0#y6WGzC|IpK)qNj5+%81z^w~4Ji ztRs_`A0qTn6zgA#?ViH>7{f{Oa?&OkjU+F>i@Zdq$+tXD-YB%XI1HZ>TArV>rXjt1 z3R&vIkeQ8l3`sdB5&$-=yfp06KO>aTdVaj-`Sur9(sx(}Aoj~nwtM3=<_?U10Iz1p zN(FW)(W$AF-t(b|@-eZ){bYZGj{6!kOrr62e8Qi7lLWQ{B+bH&MThQce|e{WIA%BB zV#%>}}G=baU|P^W;e{Li?Z* z#y@N;n__`&rSroJ4H*gvA6ci~MnU26GB?QkhPJYW=iqv2`(8};Xciyu0ccQ1m^N+O zLkyF=ED3L2!m|&(x1)gB*1)!9r%!ee8s1owQwUVb-q8Uso?SV)thyZ9m@9M*_~Fr~c98O& z!jx~KkM_W!)s7ry0)jYYn3YYiq@8PaLn|9Z3$0Sx7L`^D`V^Wf7 z+afJ0#D79MFLatQy9j1gNS_STk3%I;j(510Os7A|n%4d0PN)fcBF+;=l?VT6d4cjs z^Z<3hV-)#9Iz9C*lN6ZGMx@90+Rj515sJ(oz2!;xem}^*EXBgJ1KiB|?`s&PY4j=t z4t(D3`p>9uakBYqxjdXwUNmHB&u>>?1^KIm1OIv-Jl$`6%EU5IN8c+<>;B|@tUd2S z;FWm05TQ5`Z2+Xj>|(TA$tN2+#xeE^Kmf42t#XZ|LV`Zo`RF~&U~+o!3Ez@q+amP~ zfZA8SqG32C$gsp@COd^Gug4-i>L(f{qw2smOPrK=l+M?3vCET&@YfrkT%Wa}hO#)! zib_DF<;lyw2D^d;GrQk?i)k@XIFgs$4gg>{%Y;h87K8{M@Df>gXngh$izf~^p2D{9 z4@YqF&1d7^z61%9ms!Y5C*+fto8f(y+0ap1KqR4m{KJB~TauT(ilhV;o!woAgBsl* zzD=M=1D_>|fGW{`nkilQ3?n}hp1iCb5#0YQEgYHOhvg-?;5!<+*}-rblEEmML$d58 zBqOOxBNPBhr=rc@NrSt6tTNvn=#F$G_|*;$%Ce!zOE-5>8Qq;&&%h)GwgBjV?WZw- zxI4S8Jg0@)m5Jg2L#T2oi&ZSWsbRw00GZ61(>;*o!Y=+`tC!KzV)qzS!BQL@f>(6o zvq&HudpStI1T{jq9T)MVzDr*I72YYFP)uM@d;kn!@OrjW>gW|Hklk;YPDLIa$jfK@ zTSVNGN?j2K_#zJYB{VLR3V7;`wolHR)qa{xD3Lf|J=?choD_jvMNW-BkPTGDdR<-eL;y=%K>(PJ0*Zs_!e3XnsRYzY# zNZ|XK9roE6tU%mk2Tx_X6Y0I!ii07LG=bSEErD z8C3N2q|f+DSAw`@vd*bpGrw}p^@W;Op9FsBZqIm{-CP7e=81dxiUUS6(qga_MNkq$ zokUxx2|J{Pm>HOJ5|VFWjF(f}{tYw|X0+(u29=WvVar6xxhGIR&rO&>?qm0dIR!+a#HCZ4N^A}1nJ#z$8BHw+Fg;3xw$;tVP} zr>0{JDFW1#zjFnFc>z<02QY@|aqxGHDMMPemJZZlFMduy6=9#BgC_CGQ$!Y^jj;Am zC%~S3G@Afg$o5}mpiMMVU&=b+BKpv4=29!^E=+pjOR;Pbk;!v-Ss-)>_Kv*`AFOHS zYr>4=a*{ayt!xS?-PHEaIGiPHFHPX*sJSAFmLk=f38UL~=Q3P?4b`lcqZhI>t<-fl z=Bz2L1Qs{}V4Pf2TG*Z{_hBlC9ph^boB#Pn&#E)Pc#G(4`N;QI%AR5E^G z(nEgW=fkM@F?U>#%Xp>cxYJ!Zuvik*bk4jle%im~$e|jJ{_rJ{3B!)LAMAYn9m9^1 zW9Jf76{zI;q+@plt6}VZ)Co#pDL78Lj=dHYBWXxR_HEWYT2-=jVEn{_*|{ATgLls+ ztPJH?kuG9G1bDL(Hj|m?QD$*Pv8ld~Ixa?^uDQN)O>>aB$$*7LgDeI$OZDuU`TXv5 zqA8k?qhEsLFLTD{pnA^GpRf(cEaM7{*z{#nGLmPk*F%fU#kVbJLW^Ey%U~FTyYpeY z4xb7e@E$f5X6d0rRy@rF1xl2Lcb`Lf`dAYX$G%Sqie6Ki+qQc )wMHLrGi$k>HM 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
    L%9sn^=AO9Olc4Z} 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 WP$b|q?MLqxpX6(AY75g#JpLD8jit!| diff --git a/lua/db_core.lua b/lua/db_core.lua index 9ef31f7e..e5e7e371 100644 --- a/lua/db_core.lua +++ b/lua/db_core.lua @@ -1052,7 +1052,12 @@ function db_core:connect(attrs,data_source) env.checkerr(err,tostring(res)) self.conn=res - env.checkerr(self.conn,"Unable to connect to db!") + + if type(res)~="userdata" or not self:is_connect() then + self.conn=nil + env.raise("Unable to connect to database, connection !") + end + self.autocommit=cfg.get("AUTOCOMMIT") self.conn:setAutoCommit(self.autocommit=="on" and true or false) if event then diff --git a/src/jnlua.c b/src/jnlua.c index 479a51f6..1b5dc697 100644 --- a/src/jnlua.c +++ b/src/jnlua.c @@ -10,49 +10,131 @@ #include #include - /* Include uintptr_t */ +/* Include uintptr_t */ #ifdef LUA_WIN -# include -# if __STDC_VERSION__ >= 201112 && !defined __STDC_NO_THREADS__ -# define JNLUA_THREADLOCAL _Thread_local -# elif defined _WIN32 && ( \ - defined _MSC_VER || \ - defined __ICL || \ - defined __DMC__ || \ - defined __BORLANDC__ ) -# define JNLUA_THREADLOCAL __declspec(thread) -# else -# define JNLUA_THREADLOCAL __thread -# endif +#include +#if __STDC_VERSION__ >= 201112 && !defined __STDC_NO_THREADS__ +#define JNLUA_THREADLOCAL _Thread_local +#elif defined _WIN32 && (defined _MSC_VER || \ + defined __ICL || \ + defined __DMC__ || \ + defined __BORLANDC__) +#define JNLUA_THREADLOCAL __declspec(thread) +#else +#define JNLUA_THREADLOCAL __thread +#endif #endif #ifdef LUA_USE_POSIX -# include -# define JNLUA_THREADLOCAL static __thread +#include +#define JNLUA_THREADLOCAL static __thread #endif - /* ---- Definitions ---- */ #define JNLUA_APIVERSION 2 #define JNLUA_JNIVERSION JNI_VERSION_1_8 #define JNLUA_JAVASTATE "jnlua.JavaState" #define JNLUA_OBJECT "jnlua.Object" #define JNLUA_MINSTACK LUA_MINSTACK -#define JNLUA_ENV(env) /* Ansca: Changed to no-op. No longer stores JNIEnv pointers to be thread safe. */ -#define JNLUA_PCALL(L, nargs, nresults) {\ - int status = lua_pcall(L, (nargs), (nresults), 0);\ - if (status != 0) {\ - throw(L, status);\ - }\ -} +static JavaVM *java_vm = NULL; +JNLUA_THREADLOCAL JNIEnv *thread_env; +#define JNLUA_ENV \ + jint envStat = (*java_vm)->GetEnv(java_vm, (void **)&thread_env, JNLUA_JNIVERSION); \ + if (envStat == JNI_EDETACHED) \ + { \ + if ((*java_vm)->AttachCurrentThread(java_vm, (void **)&thread_env, NULL) != 0) \ + { \ + printf("%s", "Failed to AttachCurrentThread"); \ + } \ + } +#define JNLUA_ENV_L \ + JNLUA_ENV; \ + lua_State *L = getluathread(obj); +#define JNLUA_DETACH \ + if (envStat == JNI_EDETACHED) \ + { \ + envStat = 0; \ + (*java_vm)->DetachCurrentThread(java_vm); \ + } +#define JNLUA_DETACH_L \ + (*thread_env)->DeleteLocalRef(thread_env, obj); \ + JNLUA_DETACH; + +#define JNLUA_PCALL(L, nargs, nresults) \ + { \ + int status = lua_pcall(L, (nargs), (nresults), 0); \ + if (status != 0) \ + { \ + throw(L, status); \ + JNLUA_DETACH_L; \ + } \ + } #define lua_absindex(L, index) (index > 0 || index <= LUA_REGISTRYINDEX) ? index : lua_gettop(L) + index + 1 -#define thread_env get_jni_env() /* Ansca: No longer a global variable. Now fetches a thread safe JNIEnv from VM. */ +#include +/* ---- Error handling ---- */ +/* + * JNI does not allow uncontrolled transitions such as jongjmp between Java + * code and native code, but Lua uses longjmp for error handling. The follwing + * section replicates logic from luaD_rawrunprotected that is internal to + * Lua. Contact me if you know of a more elegant solution ;) + */ +/* +struct lua_longjmp { + struct lua_longjmp *previous; + jmp_buf b; + volatile int status; +}; + +struct lua_State { + void *next; + unsigned char tt; + unsigned char marked; + unsigned char status; + void *top; + void *l_G; + void *ci; + void *oldpc; + void *stack_last; + void *stack; + int stacksize; + unsigned short nny; + unsigned short nCcalls; + unsigned char hookmask; + unsigned char allowhook; + int basehookcount; + int hookcount; + lua_Hook hook; + void *openupval; + void *gclist; + struct lua_longjmp *errorJmp; +}; + +#define JNLUA_TRY {\ + unsigned short oldnCcalls = L->nCcalls;\ + struct lua_longjmp lj;\ + lj.status = 0;\ + lj.previous = L->errorJmp;\ + L->errorJmp = &lj;\ + if (setjmp(lj.b) == 0) {\ + checkstack(L, LUA_MINSTACK, NULL);\ + setJniEnv(L, env); +#define JNLUA_END }\ + L->errorJmp = lj.previous;\ + L->nCcalls = oldnCcalls;\ + if (lj.status != 0) {\ + throwException(env, L, lj.status);\ + }\ +} +#define JNLUA_THROW(status) lj.status = status;\ + longjmp(lj.b, -1) +*/ /* ---- Types ---- */ /* Structure for reading and writing Java streams. */ -typedef struct StreamStruct { +typedef struct StreamStruct +{ jobject stream; jbyteArray byte_array; - jbyte* bytes; + jbyte *bytes; jboolean is_copy; } Stream; @@ -98,7 +180,7 @@ static int calljavafunction(lua_State *L); /* ---- Error handling ---- */ static int messagehandler(lua_State *L); static int isrelevant(lua_Debug *ar); -static void throw(lua_State *L, int status); +static void throw(lua_State * L, int status); /* ---- Stream adapters ---- */ static const char *readhandler(lua_State *L, void *ud, size_t *size); @@ -146,47 +228,72 @@ static jclass outputstream_class = NULL; static jmethodID write_id = 0; static jclass ioexception_class = NULL; static int initialized = 0; -static JavaVM *java_vm = NULL; /* Ansca: New global variable. Used to fetch a thread safe JNIEnv. */ +static jmethodID print_id = 0; + JNLUA_THREADLOCAL jobject luastate_obj; -/* Ansca: Fetches a JNIEnv pointer from the Java virtual machine that will work for the current thread. */ -JNLUA_THREADLOCAL JNIEnv* env_; -JNIEnv* get_jni_env() +JNLUA_THREADLOCAL JNIEnv *env_; +JNIEnv *get_jni_env() { if (!env_ && java_vm) { - (*java_vm)->GetEnv(java_vm, (void**)&env_, JNLUA_JNIVERSION); + (*java_vm)->GetEnv(java_vm, (void **)&env_, JNLUA_JNIVERSION); } return env_; } +static void println(char *message) +{ + jstring msg = (*thread_env)->NewStringUTF(thread_env, message); + (*thread_env)->CallStaticVoidMethod(thread_env, luastate_class, print_id, msg); + (*thread_env)->DeleteLocalRef(thread_env, msg); +} -static int handlejavaexception(lua_State *L,int raise) { +static void println_(const char *format, ...) +{ + char *msg; + va_list args; + va_start(args, format); + vsnprintf(msg, sizeof(msg), format, args); + va_end(args); + println(msg); +} + +static int handlejavaexception(lua_State *L, int raise) +{ jthrowable throwable; jstring where; jobject luaerror; - if ((*thread_env)->ExceptionCheck(thread_env)) { + if ((*thread_env)->ExceptionCheck(thread_env)) + { /* Push exception & clear */ luaL_where(L, 1); - (*thread_env)-> PushLocalFrame(thread_env,16); + (*thread_env)->PushLocalFrame(thread_env, 32); where = tostring(L, -1); /* Handle exception */ throwable = (*thread_env)->ExceptionOccurred(thread_env); (*thread_env)->ExceptionClear(thread_env); - if (throwable) { + if (throwable) + { luaerror = (*thread_env)->NewObject(thread_env, luaerror_class, luaerror_id, where, throwable); - if (luaerror) { + if (luaerror) + { pushjavaobject(L, luaerror); - } else { + } + else + { lua_pushliteral(L, "JNI error: NewObject() failed creating Lua error"); lua_concat(L, 2); } - } else { + } + else + { lua_pushliteral(L, "Java exception occurred."); lua_concat(L, 2); } - (*thread_env)-> PopLocalFrame(thread_env,NULL); - if(raise) return lua_error(L); + (*thread_env)->PopLocalFrame(thread_env, NULL); + if (raise) + return lua_error(L); return 1; } return 0; @@ -194,18 +301,23 @@ static int handlejavaexception(lua_State *L,int raise) { /* ---- Fields ---- */ /* lua_registryindex() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1registryindex(JNIEnv *env, jobject obj) { +jint jcall_registryindex(JNIEnv *env, jobject obj) +{ + (*env)->DeleteLocalRef(env, obj); return (jint)LUA_REGISTRYINDEX; } /* lua_version() */ -JNIEXPORT jstring JNICALL Java_com_naef_jnlua_LuaState_lua_1version(JNIEnv *env, jobject obj) { +jstring jcall_version(JNIEnv *env, jobject obj) +{ const char *luaVersion; luaVersion = LUA_VERSION; - if (strncmp(luaVersion, "Lua ", 4) == 0) { + if (strncmp(luaVersion, "Lua ", 4) == 0) + { luaVersion += 4; } + (*env)->DeleteLocalRef(env, obj); return (*env)->NewStringUTF(env, luaVersion); } @@ -214,7 +326,8 @@ JNIEXPORT jstring JNICALL Java_com_naef_jnlua_LuaState_lua_1version(JNIEnv *env, * lua_newstate() */ JNLUA_THREADLOCAL jobject newstate_obj; -static int newstate_protected(lua_State *L) { +static int newstate_protected(lua_State *L) +{ jobject *ref; /* Set the Java state in the Lua state. */ @@ -227,7 +340,8 @@ static int newstate_protected(lua_State *L) { lua_pushcclosure(L, gcjavaobject, 1); lua_setfield(L, -2, "__gc"); *ref = (*thread_env)->NewGlobalRef(thread_env, newstate_obj); - if (!*ref) { + if (!*ref) + { lua_pushliteral(L, "JNI error: NewWeakGlobalRef() failed setting up Lua state"); return lua_error(L); } @@ -247,23 +361,32 @@ static int newstate_protected(lua_State *L) { return 1; } /* This custom allocator ensures a VM won't exceed its allowed memory use. */ -static void *l_alloc(void *ud, void *ptr, size_t osize, size_t nsize) { +static void *l_alloc(void *ud, void *ptr, size_t osize, size_t nsize) +{ jint total, used; (void)ud; /* not used, always NULL */ getluamemory(&total, &used); - if (nsize == 0) { + if (nsize == 0) + { free(ptr); setluamemoryused(used - osize); - } else { - if (ptr == NULL) { - if (total >= 0 && total - nsize >= used) { + } + else + { + if (ptr == NULL) + { + if (total >= 0 && total - nsize >= used) + { setluamemoryused(used + nsize); return malloc(nsize); } - } else { + } + else + { /* Lua expects this to not fail if nsize <= osize, so we must allow that even if it exceeds our current max memory. */ - if (nsize <= osize || (total - (nsize - osize) >= used)) { + if (nsize <= osize || (total - (nsize - osize) >= used)) + { setluamemoryused(used + (nsize - osize)); return realloc(ptr, nsize); } @@ -271,143 +394,167 @@ static void *l_alloc(void *ud, void *ptr, size_t osize, size_t nsize) { } return NULL; } -static int panic(lua_State *L) { - (void)L; /* to avoid warnings */ +static int panic(lua_State *L) +{ + (void)L; /* to avoid warnings */ fprintf(stderr, "PANIC: unprotected error in call to Lua API (%s)\n", - lua_tostring(L, -1)); + lua_tostring(L, -1)); return 0; } -static lua_State *controlled_newstate(void) { +static lua_State *controlled_newstate(void) +{ jint total, used; getluamemory(&total, &used); - if (total <= 0) { + if (total <= 0) + { return luaL_newstate(); } - else { + else + { lua_State *L = lua_newstate(l_alloc, NULL); - if (L) lua_atpanic(L, &panic); + if (L) + lua_atpanic(L, &panic); return L; } } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1newstate(JNIEnv *env, jobject obj, int apiversion, jlong existing) { - lua_State *L; - - /* Initialized? */ - if (!initialized) { - return; - } - - (*env)->EnsureLocalCapacity(env,512); - /* API version? */ - if (apiversion != JNLUA_APIVERSION) { - return; - } - - /* Create or attach to Lua state. */ - JNLUA_ENV(env); - luastate_obj = obj; - L = !existing ? controlled_newstate() : (lua_State *) (uintptr_t) existing; - if (!L) { - return; - } - - /* Setup Lua state. */ - if (checkstack(L, JNLUA_MINSTACK)) { - newstate_obj = obj; - lua_pushcfunction(L, newstate_protected); - JNLUA_PCALL(L, 0, 1); - } - if ((*env)->ExceptionCheck(env)) { - if (!existing) { - lua_close(L); - } - return; - } - - /* Set the Lua state in the Java state. */ - setluathread(obj, L); - setluastate(obj, L); -} - /* lua_close() */ -static int close_protected(lua_State *L) { +static int close_protected(lua_State *L) +{ /* Unset the Java state in the Lua state. */ lua_pushnil(L); lua_setfield(L, LUA_REGISTRYINDEX, JNLUA_JAVASTATE); return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1close(JNIEnv *env, jobject obj, jboolean ownstate) { - lua_State *L, *T; +void jcall_close(JNIEnv *env, jobject obj, jboolean ownstate) +{ + JNLUA_ENV_L; + lua_State *T; lua_Debug ar; - JNLUA_ENV(env); - L = getluastate(obj); - if (ownstate) { + if (ownstate) + { /* Can close? */ - T = getluathread(obj); - if (L != T || lua_getstack(L, 0, &ar)) { - return; + T = getluastate(obj); + if (L != T || lua_getstack(L, 0, &ar)) + { + goto END; } - + lua_pushcfunction(L, close_protected); + JNLUA_PCALL(L, 0, 0); /* Unset the Lua state in the Java state. */ setluastate(obj, NULL); setluathread(obj, NULL); /* Close Lua state. */ lua_close(L); - } else { + } + else + { /* Can close? */ - if (!lua_checkstack(L, JNLUA_MINSTACK)) { - return; + if (!lua_checkstack(L, JNLUA_MINSTACK)) + { + goto END; } /* Cleanup Lua state. */ lua_pushcfunction(L, close_protected); JNLUA_PCALL(L, 0, 0); - if ((*env)->ExceptionCheck(env)) { - return; + if ((*thread_env)->ExceptionCheck(thread_env)) + { + goto END; } /* Unset the Lua state in the Java state. */ setluastate(obj, NULL); setluathread(obj, NULL); + } +END: + JNLUA_DETACH_L; +} - /* Unset environment. */ - JNLUA_ENV(NULL); +void jcall_newstate(JNIEnv *env, jobject obj, int apiversion, jlong existing) +{ + /* Initialized? */ + if (!initialized) + { + return; + } + JNLUA_ENV_L; + (*thread_env)->EnsureLocalCapacity(thread_env, 512); + /* API version? */ + if (apiversion != JNLUA_APIVERSION) + { + goto END; } + + /* Create or attach to Lua state. */ + + luastate_obj = obj; + L = !existing ? controlled_newstate() : (lua_State *)(uintptr_t)existing; + if (!L) + { + goto END; + } + + /* Setup Lua state. */ + if (checkstack(L, JNLUA_MINSTACK)) + { + newstate_obj = obj; + lua_pushcfunction(L, newstate_protected); + JNLUA_PCALL(L, 0, 1); + } + if ((*thread_env)->ExceptionCheck(thread_env)) + { + if (!existing) + { + lua_pushcfunction(L, close_protected); + JNLUA_PCALL(L, 0, 0); + lua_close(L); + } + goto END; + } + + /* Set the Lua state in the Java state. */ + setluathread(obj, L); + setluastate(obj, L); +END: + JNLUA_DETACH_L; } /* lua_gc() */ JNLUA_THREADLOCAL int gc_what; JNLUA_THREADLOCAL int gc_data; JNLUA_THREADLOCAL int gc_result; -static int gc_protected(lua_State *L) { +static int gc_protected(lua_State *L) +{ gc_result = lua_gc(L, gc_what, gc_data); return 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1gc(JNIEnv *env, jobject obj, jint what, jint data) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK)) { +jint jcall_gc(JNIEnv *env, jobject obj, jint what, jint data) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK)) + { gc_what = what; gc_data = data; lua_pushcfunction(L, gc_protected); JNLUA_PCALL(L, 0, 0); } + JNLUA_DETACH_L; return (jint)gc_result; } /* ---- Registration ---- */ JNLUA_THREADLOCAL int openlib_lib; -static int openlib_protected(lua_State *L) { +static int openlib_protected(lua_State *L) +{ lua_CFunction openfunc; const char *libname; - switch (openlib_lib) { + switch (openlib_lib) + { case 0: openfunc = luaopen_base; libname = "_G"; @@ -460,493 +607,502 @@ static int openlib_protected(lua_State *L) { lua_call(L, 1, 0); return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1openlib(JNIEnv *env, jobject obj, jint lib) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkarg(lib >= 0 && lib <= 10, "illegal library")) { +void jcall_openlib(JNIEnv *env, jobject obj, jint lib) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checkarg(lib >= 0 && lib <= 10, "illegal library")) + { openlib_lib = lib; lua_pushcfunction(L, openlib_protected); JNLUA_PCALL(L, 0, 0); } + JNLUA_DETACH_L; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1openlibs(JNIEnv *env, jobject obj) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - luaL_openlibs(L); +void jcall_openlibs(JNIEnv *env, jobject obj) +{ + JNLUA_ENV_L; + luaL_openlibs(L); + JNLUA_DETACH_L; } /* ---- Load and dump ---- */ /* lua_load() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1load(JNIEnv *env, jobject obj, jobject inputStream, jstring chunkname, jstring mode) { - lua_State *L; +void jcall_load(JNIEnv *env, jobject obj, jobject inputStream, jstring chunkname, jstring mode) +{ + JNLUA_ENV_L; const char *chunkname_utf = NULL; - Stream stream = { inputStream, NULL, NULL, 0 }; + Stream stream = {inputStream, NULL, NULL, 0}; int status; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && (chunkname_utf = getstringchars(chunkname)) - && (stream.byte_array = newbytearray(1024))) { + if (checkstack(L, JNLUA_MINSTACK) && (chunkname_utf = getstringchars(chunkname)) && (stream.byte_array = newbytearray(1024))) + { status = lua_load(L, readhandler, &stream, chunkname_utf); - if (status != 0) { + if (status != 0) + { throw(L, status); } } - if (stream.bytes) { - (*env)->ReleaseByteArrayElements(env, stream.byte_array, stream.bytes, JNI_ABORT); + if (stream.bytes) + { + (*thread_env)->ReleaseByteArrayElements(thread_env, stream.byte_array, stream.bytes, JNI_ABORT); } - if (stream.byte_array) { - (*env)->DeleteLocalRef(env, stream.byte_array); + if (stream.byte_array) + { + (*thread_env)->DeleteLocalRef(thread_env, stream.byte_array); } - if (chunkname_utf) { + if (chunkname_utf) + { releasestringchars(chunkname, chunkname_utf); } + (*thread_env)->DeleteLocalRef(thread_env,inputStream); + JNLUA_DETACH_L; } /* lua_dump() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1dump(JNIEnv *env, jobject obj, jobject outputStream) { - lua_State *L; - Stream stream = { outputStream, NULL, NULL, 0 }; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checknelems(L, 1) - && (stream.byte_array = newbytearray(1024))) { +void jcall_dump(JNIEnv *env, jobject obj, jobject outputStream) +{ + JNLUA_ENV_L; + Stream stream = {outputStream, NULL, NULL, 0}; + if (checkstack(L, JNLUA_MINSTACK) && checknelems(L, 1) && (stream.byte_array = newbytearray(1024))) + { lua_dump(L, writehandler, &stream); } - if (stream.bytes) { - (*env)->ReleaseByteArrayElements(env, stream.byte_array, stream.bytes, JNI_ABORT); + if (stream.bytes) + { + (*thread_env)->ReleaseByteArrayElements(thread_env, stream.byte_array, stream.bytes, JNI_ABORT); } - if (stream.byte_array) { - (*env)->DeleteLocalRef(env, stream.byte_array); + if (stream.byte_array) + { + (*thread_env)->DeleteLocalRef(thread_env, stream.byte_array); } + (*thread_env)->DeleteLocalRef(thread_env,outputStream); + JNLUA_DETACH_L; } /* ---- Call ---- */ /* lua_pcall() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pcall(JNIEnv *env, jobject obj, jint nargs, jint nresults) { - lua_State *L; +void jcall_pcall(JNIEnv *env, jobject obj, jint nargs, jint nresults) +{ + JNLUA_ENV_L; int index, status; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkarg(nargs >= 0, "illegal argument count") - && checknelems(L, nargs + 1) - && checkarg(nresults >= 0 || nresults == LUA_MULTRET, "illegal return count") - && (nresults == LUA_MULTRET || checkstack(L, nresults - (nargs + 1)))) { + if (checkarg(nargs >= 0, "illegal argument count") && checknelems(L, nargs + 1) && checkarg(nresults >= 0 || nresults == LUA_MULTRET, "illegal return count") && (nresults == LUA_MULTRET || checkstack(L, nresults - (nargs + 1)))) + { index = lua_absindex(L, -nargs - 1); lua_pushcfunction(L, messagehandler); lua_insert(L, index); status = lua_pcall(L, nargs, nresults, index); lua_remove(L, index); - if (status != 0) { + if (status != 0) + { throw(L, status); } } + JNLUA_DETACH_L; } /* ---- Global ---- */ /* lua_getglobal() */ JNLUA_THREADLOCAL const char *getglobal_name; -static int getglobal_protected(lua_State *L) { +static int getglobal_protected(lua_State *L) +{ lua_getglobal(L, getglobal_name); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1getglobal(JNIEnv *env, jobject obj, jstring name) { - lua_State *L; - +void jcall_getglobal(JNIEnv *env, jobject obj, jstring name) +{ + JNLUA_ENV_L; getglobal_name = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && (getglobal_name = getstringchars(name))) { + if (checkstack(L, JNLUA_MINSTACK) && (getglobal_name = getstringchars(name))) + { lua_pushcfunction(L, getglobal_protected); JNLUA_PCALL(L, 0, 1); } - if (getglobal_name) { + if (getglobal_name) + { releasestringchars(name, getglobal_name); } + JNLUA_DETACH_L; } /* lua_setglobal() */ JNLUA_THREADLOCAL const char *setglobal_name; -static int setglobal_protected(lua_State *L) { +static int setglobal_protected(lua_State *L) +{ lua_setglobal(L, setglobal_name); return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1setglobal(JNIEnv *env, jobject obj, jstring name) { - lua_State *L; - +void jcall_setglobal(JNIEnv *env, jobject obj, jstring name) +{ + JNLUA_ENV_L; setglobal_name = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checknelems(L, 1) - && (setglobal_name = getstringchars(name))) { + if (checkstack(L, JNLUA_MINSTACK) && checknelems(L, 1) && (setglobal_name = getstringchars(name))) + { lua_pushcfunction(L, setglobal_protected); lua_insert(L, -2); JNLUA_PCALL(L, 1, 0); } - if (setglobal_name) { + if (setglobal_name) + { releasestringchars(name, setglobal_name); } + JNLUA_DETACH_L; } /* ---- Stack push ---- */ /* lua_pushboolean() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushboolean(JNIEnv *env, jobject obj, jint b) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK)) { +void jcall_pushboolean(JNIEnv *env, jobject obj, jint b) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK)) + { lua_pushboolean(L, b); } + JNLUA_DETACH_L; } /* lua_pushbytearray() */ JNLUA_THREADLOCAL jbyte *pushbytearray_b; JNLUA_THREADLOCAL jsize pushbytearray_length; -static int pushbytearray_protected(lua_State *L) { +static int pushbytearray_protected(lua_State *L) +{ lua_pushlstring(L, pushbytearray_b, pushbytearray_length); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushbytearray(JNIEnv *env, jobject obj, jbyteArray ba) { - lua_State *L; - +void jcall_pushbytearray(JNIEnv *env, jobject obj, jbyteArray ba) +{ + JNLUA_ENV_L; pushbytearray_b = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && (pushbytearray_b = (*env)->GetByteArrayElements(env, ba, NULL))) { - pushbytearray_length = (*env)->GetArrayLength(env, ba); + if (checkstack(L, JNLUA_MINSTACK) && (pushbytearray_b = (*thread_env)->GetByteArrayElements(thread_env, ba, NULL))) + { + pushbytearray_length = (*thread_env)->GetArrayLength(thread_env, ba); lua_pushcfunction(L, pushbytearray_protected); JNLUA_PCALL(L, 0, 1); } - if (pushbytearray_b) { - (*env)->ReleaseByteArrayElements(env, ba, pushbytearray_b, JNI_ABORT); + if (pushbytearray_b) + { + (*thread_env)->ReleaseByteArrayElements(thread_env, ba, pushbytearray_b, JNI_ABORT); } + (*thread_env)->DeleteLocalRef(thread_env, ba); + JNLUA_DETACH_L; } /* lua_pushinteger() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushinteger(JNIEnv *env, jobject obj, jint n) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK)) { - lua_pushinteger(L, n); +void jcall_pushinteger(JNIEnv *env, jobject obj, jint n) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK)) + { + lua_pushnumber(L, n); } + JNLUA_DETACH_L; } /* lua_pushjavafunction() */ JNLUA_THREADLOCAL jobject pushjavafunction_f; -static int pushjavafunction_protected(lua_State *L) { +static int pushjavafunction_protected(lua_State *L) +{ pushjavaobject(L, pushjavafunction_f); lua_pushcclosure(L, calljavafunction, 1); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushjavafunction(JNIEnv *env, jobject obj, jobject f) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checknotnull(f)) { +void jcall_pushjavafunction(JNIEnv *env, jobject obj, jobject f) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checknotnull(f)) + { pushjavafunction_f = f; lua_pushcfunction(L, pushjavafunction_protected); JNLUA_PCALL(L, 0, 1); } + (*thread_env)->DeleteLocalRef(thread_env,f); + JNLUA_DETACH_L; } /* lua_pushjavaobject() */ JNLUA_THREADLOCAL jobject pushjavaobject_object; JNLUA_THREADLOCAL jstring pushjavaobject_class; -static int pushjavaobject_protected(lua_State *L) { +static int pushjavaobject_protected(lua_State *L) +{ pushjavaobject(L, pushjavaobject_object); return 1; } -static int pushjavaobject_protected_meta(lua_State *L) { - if (pushjavaobject_class==NULL) return pushjavaobject_protected(L); +static int pushjavaobject_protected_meta(lua_State *L) +{ + if (pushjavaobject_class == NULL) + return pushjavaobject_protected(L); jobject *user_data; user_data = (jobject *)lua_newuserdata(L, sizeof(jobject)); *user_data = (*thread_env)->NewGlobalRef(thread_env, pushjavaobject_object); - if (!*user_data) { + if (!*user_data) + { lua_pushliteral(L, "JNI error: NewGlobalRef() failed pushing Java object"); lua_error(L); } - - const char* str = getstringchars(pushjavaobject_class); + + const char *str = getstringchars(pushjavaobject_class); luaL_getmetatable(L, str); - if (lua_type(L,-1) == 0) { - lua_pop(L,1); + if (lua_type(L, -1) == 0) + { + lua_pop(L, 1); luaL_newmetatable(L, str); lua_pushstring(L, str); lua_setfield(L, -2, "__className"); luaL_getmetatable(L, JNLUA_OBJECT); - lua_setmetatable(L,-2); + lua_setmetatable(L, -2); } lua_setmetatable(L, -2); lua_getmetatable(L, -1); - + lua_pop(L, 1); return 1; } - -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushjavaobject(JNIEnv *env, jobject obj, jobject object) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checknotnull(object)) { +void jcall_pushjavaobject(JNIEnv *env, jobject obj, jobject object) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checknotnull(object)) + { pushjavaobject_object = object; lua_pushcfunction(L, pushjavaobject_protected); JNLUA_PCALL(L, 0, 1); } + (*thread_env)->DeleteLocalRef(thread_env,object); + JNLUA_DETACH_L; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushjavaobjectl(JNIEnv *env, jobject obj, jobject object, jstring class) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checknotnull(object)) { +void jcall_pushjavaobjectl(JNIEnv *env, jobject obj, jobject object, jstring class) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checknotnull(object)) + { pushjavaobject_object = object; pushjavaobject_class = class; lua_pushcfunction(L, pushjavaobject_protected_meta); JNLUA_PCALL(L, 0, 1); } + (*thread_env)->DeleteLocalRef(thread_env,object); + (*thread_env)->DeleteLocalRef(thread_env,class); + JNLUA_DETACH_L; } /* lua_pushnil() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushnil(JNIEnv *env, jobject obj) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK)) { +void jcall_pushnil(JNIEnv *env, jobject obj) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK)) + { lua_pushnil(L); } + JNLUA_DETACH_L; } /* lua_pushnumber() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushnumber(JNIEnv *env, jobject obj, jdouble n) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK)) { +void jcall_pushnumber(JNIEnv *env, jobject obj, jdouble n) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK)) + { lua_pushnumber(L, n); } + JNLUA_DETACH_L; } /* lua_pushstring() */ JNLUA_THREADLOCAL const char *pushstring_s; JNLUA_THREADLOCAL jsize pushstring_length; -static int pushstring_protected(lua_State *L) { +static int pushstring_protected(lua_State *L) +{ lua_pushlstring(L, pushstring_s, pushstring_length); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushstring(JNIEnv *env, jobject obj, jstring s) { - lua_State *L; +void jcall_pushstring(JNIEnv *env, jobject obj, jstring s) +{ + JNLUA_ENV_L; + pushstring_s = NULL; + if (checkstack(L, JNLUA_MINSTACK) && (pushstring_s = getstringchars(s))) + { + pushstring_length = (*thread_env)->GetStringUTFLength(thread_env, s); + lua_pushcfunction(L, pushstring_protected); + JNLUA_PCALL(L, 0, 1); + } + if (pushstring_s) + { + releasestringchars(s, pushstring_s); + } + JNLUA_DETACH_L; +} +void jcall_pushstr2num(JNIEnv *env, jobject obj, jstring s) +{ + JNLUA_ENV_L; pushstring_s = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && (pushstring_s = getstringchars(s))) { - pushstring_length = (*env)->GetStringUTFLength(env, s); + if (checkstack(L, JNLUA_MINSTACK) && (pushstring_s = getstringchars(s))) + { + pushstring_length = (*thread_env)->GetStringUTFLength(thread_env, s); lua_pushcfunction(L, pushstring_protected); JNLUA_PCALL(L, 0, 1); } - if (pushstring_s) { + if (pushstring_s) + { releasestringchars(s, pushstring_s); + int isnum; + lua_Number num = lua_tonumberx(L, -1, &isnum); + lua_pop(L, 1); + if(!isnum) { + char buf[256]; + snprintf(buf, sizeof(buf), "Cannot convert String '%s' to number.", pushstring_s); + (*thread_env)->ThrowNew(thread_env, error_class,buf); + } else { + lua_pushnumber(L,num); + } } + JNLUA_DETACH_L; } /* ---- Stack type test ---- */ /* lua_isboolean() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isboolean(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return (jint)lua_isboolean(L, index); +jint jcall_isboolean(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_isboolean(L, index)); + JNLUA_DETACH_L; + return rtn; } /* lua_iscfunction() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1iscfunction(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - lua_CFunction c_function = NULL; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - c_function = lua_tocfunction(L, index); +jint jcall_iscfunction(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + lua_CFunction c_function = !validindex(L, index) ? NULL : lua_tocfunction(L, index); + JNLUA_DETACH_L; return (jint)(c_function != NULL && c_function != calljavafunction); } /* lua_isfunction() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isfunction(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return (jint)lua_isfunction(L, index); +jint jcall_isfunction(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_isfunction(L, index)); + JNLUA_DETACH_L; + return rtn; } /* lua_isjavafunction() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isjavafunction(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return (jint)(lua_tocfunction(L, index) == calljavafunction); +jint jcall_isjavafunction(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_tocfunction(L, index) == calljavafunction); + JNLUA_DETACH_L; + return rtn; } /* lua_isjavaobject() */ JNLUA_THREADLOCAL int isjavaobject_result; -static int isjavaobject_protected(lua_State *L) { +static int isjavaobject_protected(lua_State *L) +{ isjavaobject_result = tojavaobject(L, 1, NULL) != NULL; return 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isjavaobject(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; +jint jcall_isjavaobject(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (!validindex(L, index)) + { + isjavaobject_result = 0; } - if (checkstack(L, JNLUA_MINSTACK)) { + else if (checkstack(L, JNLUA_MINSTACK)) + { index = lua_absindex(L, index); lua_pushcfunction(L, isjavaobject_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 0); } + JNLUA_DETACH_L; return (jint)isjavaobject_result; } /* lua_isnil() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isnil(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return (jint)lua_isnil(L, index); +jint jcall_isnil(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_isnil(L, index)); + JNLUA_DETACH_L; + return rtn; } /* lua_isnone() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isnone(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - return (jint)!validindex(L, index); +jint jcall_isnone(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)!validindex(L, index); + JNLUA_DETACH_L; + return rtn; } /* lua_isnoneornil() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isnoneornil(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 1; - } - return (jint)lua_isnil(L, index); +jint jcall_isnoneornil(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 1 : lua_isnil(L, index)); + JNLUA_DETACH_L; + return rtn; } /* lua_isnumber() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isnumber(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return (jint)lua_isnumber(L, index); +jint jcall_isnumber(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_isnumber(L, index)); + JNLUA_DETACH_L; + return rtn; } /* lua_isstring() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isstring(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return (jint)lua_isstring(L, index); +jint jcall_isstring(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_isstring(L, index)); + JNLUA_DETACH_L; + return rtn; } /* lua_istable() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1istable(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return lua_istable(L, index); +jint jcall_istable(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_istable(L, index)); + JNLUA_DETACH_L; + return rtn; } /* lua_isthread() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1isthread(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return (jint)lua_isthread(L, index); +jint jcall_isthread(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_isthread(L, index)); + JNLUA_DETACH_L; + return rtn; } /* ---- Stack query ---- */ /* lua_equal() */ -JNLUA_THREADLOCAL int equal_result; -static int equal_protected(lua_State *L) { +int equal_result; +static int equal_protected(lua_State *L) +{ equal_result = lua_equal(L, 1, 2); return 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1equal(JNIEnv *env, jobject obj, jint index1, jint index2) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index1) || !validindex(L, index2)) { - return (jint)0; +jint jcall_equal(JNIEnv *env, jobject obj, jint index1, jint index2) +{ + JNLUA_ENV_L; + if (!validindex(L, index1) || !validindex(L, index2)) + { + equal_result = 0; } - if (checkstack(L, JNLUA_MINSTACK)) { + else if (checkstack(L, JNLUA_MINSTACK)) + { index1 = lua_absindex(L, index1); index2 = lua_absindex(L, index2); lua_pushcfunction(L, equal_protected); @@ -954,27 +1110,26 @@ JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1equal(JNIEnv *env, jobj lua_pushvalue(L, index2); JNLUA_PCALL(L, 2, 0); } + JNLUA_DETACH_L; return (jint)equal_result; } - - - /* lua_lessthan() */ -JNLUA_THREADLOCAL int lessthan_result; -static int lessthan_protected(lua_State *L) { +int lessthan_result; +static int lessthan_protected(lua_State *L) +{ lessthan_result = lua_lessthan(L, 1, 2); return 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1lessthan(JNIEnv *env, jobject obj, jint index1, jint index2) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index1) || !validindex(L, index2)) { - return (jint)0; +jint jcall_lessthan(JNIEnv *env, jobject obj, jint index1, jint index2) +{ + JNLUA_ENV_L; + if (!validindex(L, index1) || !validindex(L, index2)) + { + lessthan_result = 0; } - if (checkstack(L, JNLUA_MINSTACK)) { + else if (checkstack(L, JNLUA_MINSTACK)) + { index1 = lua_absindex(L, index1); index2 = lua_absindex(L, index2); lua_pushcfunction(L, lessthan_protected); @@ -982,454 +1137,459 @@ JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1lessthan(JNIEnv *env, j lua_pushvalue(L, index2); JNLUA_PCALL(L, 2, 0); } + JNLUA_DETACH_L; return (jint)lessthan_result; } /* lua_objlen() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1objlen(JNIEnv *env, jobject obj, jint index) { - lua_State *L; +jint jcall_objlen(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; size_t result = 0; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index)) { + if (checkindex(L, index)) + { result = lua_objlen(L, index); } + JNLUA_DETACH_L; return (jint)result; } /* lua_rawequal() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1rawequal(JNIEnv *env, jobject obj, jint index1, jint index2) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index1) || !validindex(L, index2)) { - return (jint)0; - } - return (jint)lua_rawequal(L, index1, index2); +jint jcall_rawequal(JNIEnv *env, jobject obj, jint index1, jint index2) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index1) || !validindex(L, index2) ? 0 : lua_rawequal(L, index1, index2)); + JNLUA_DETACH_L; + return rtn; } /* lua_toboolean() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1toboolean(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return 0; - } - return lua_toboolean(L, index); +jint jcall_toboolean(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? 0 : lua_toboolean(L, index)); + JNLUA_DETACH_L; + return rtn; } - /* lua_tobytearray() */ JNLUA_THREADLOCAL const char *tobytearray_result; JNLUA_THREADLOCAL size_t tobytearray_length; -static int tobytearray_protected(lua_State *L) { +static int tobytearray_protected(lua_State *L) +{ tobytearray_result = lua_tolstring(L, 1, &tobytearray_length); return 0; } -JNIEXPORT jbyteArray JNICALL Java_com_naef_jnlua_LuaState_lua_1tobytearray(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - jbyteArray ba; +jbyteArray jcall_tobytearray(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jbyteArray ba = NULL; jbyte *b; tobytearray_result = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index)) { + if (checkstack(L, JNLUA_MINSTACK) && checkindex(L, index)) + { index = lua_absindex(L, index); lua_pushcfunction(L, tobytearray_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 0); } - if (!tobytearray_result) { - return NULL; + if (!tobytearray_result) + { + goto END; } - ba = (*env)->NewByteArray(env, (jsize)tobytearray_length); - if (!ba) { - return NULL; + ba = (*thread_env)->NewByteArray(thread_env, (jsize)tobytearray_length); + if (!ba) + { + goto END; } - b = (*env)->GetByteArrayElements(env, ba, NULL); - if (!b) { - return NULL; + b = (*thread_env)->GetByteArrayElements(thread_env, ba, NULL); + if (!b) + { + goto END; } memcpy(b, tobytearray_result, tobytearray_length); - (*env)->ReleaseByteArrayElements(env, ba, b, 0); + (*env)->ReleaseByteArrayElements(thread_env, ba, b, 0); +END: + JNLUA_DETACH_L; return ba; } /* lua_tointeger() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1tointeger(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - lua_Integer result = 0; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index)) { - result = lua_tointeger(L, index); +jlong jcall_tointeger(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + lua_Number result = 0; + if (checkindex(L, index)) + { + result = lua_tonumber(L, index); } - return (jint) result; + JNLUA_DETACH_L; + return (jlong)result; } /* lua_tointegerx() */ -JNIEXPORT jobject JNICALL Java_com_naef_jnlua_LuaState_lua_1tointegerx (JNIEnv *env, jobject obj, jint index) { - lua_State *L; - lua_Integer result = 0; +jobject jcall_tointegerx(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + + lua_Number result = 0; int isnum = 0; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index)) { - result = lua_tointegerx(L, index, &isnum); + if (checkindex(L, index)) + { + result = lua_tonumberx(L, index, &isnum); } - if(isnum) { - const auto jobject obj1 = (*env)->CallStaticObjectMethod(env, double_class, valueof_double_id, (jdouble) result); - isnum = handlejavaexception(L,1); + if (isnum) + { + const auto jobject obj1 = (*thread_env)->CallStaticObjectMethod(thread_env, integer_class, valueof_integer_id, (jlong)result); + handlejavaexception(L, 1); + JNLUA_DETACH_L; return obj1; } + JNLUA_DETACH_L; return NULL; } /* lua_tojavafunction() */ JNLUA_THREADLOCAL jobject tojavafunction_result; -static int tojavafunction_protected(lua_State *L) { +static int tojavafunction_protected(lua_State *L) +{ tojavafunction_result = NULL; - if (lua_tocfunction(L, 1) == calljavafunction) { - if (lua_getupvalue(L, 1, 1)) { + if (lua_tocfunction(L, 1) == calljavafunction) + { + if (lua_getupvalue(L, 1, 1)) + { tojavafunction_result = tojavaobject(L, -1, javafunction_interface); } } return 0; } -JNIEXPORT jobject JNICALL Java_com_naef_jnlua_LuaState_lua_1tojavafunction(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index)) { +jobject jcall_tojavafunction(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checkindex(L, index)) + { index = lua_absindex(L, index); lua_pushcfunction(L, tojavafunction_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 0); } + JNLUA_DETACH_L; return tojavafunction_result; } /* lua_tojavaobject() */ JNLUA_THREADLOCAL jobject tojavaobject_result; -static int tojavaobject_protected(lua_State *L) { +static int tojavaobject_protected(lua_State *L) +{ tojavaobject_result = tojavaobject(L, 1, NULL); return 0; } -JNIEXPORT jobject JNICALL Java_com_naef_jnlua_LuaState_lua_1tojavaobject(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index)) { +jobject jcall_tojavaobject(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checkindex(L, index)) + { index = lua_absindex(L, index); lua_pushcfunction(L, tojavaobject_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 0); } + JNLUA_DETACH_L; return tojavaobject_result; } /* lua_tonumber() */ -JNIEXPORT jdouble JNICALL Java_com_naef_jnlua_LuaState_lua_1tonumber(JNIEnv *env, jobject obj, jint index) { - lua_State *L; +jdouble jcall_tonumber(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + lua_Number result = 0.0; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index)) { + if (checkindex(L, index)) + { result = lua_tonumber(L, index); } + JNLUA_DETACH_L; return (jdouble)result; } /* lua_tonumberx() */ -JNIEXPORT jobject JNICALL Java_com_naef_jnlua_LuaState_lua_1tonumberx (JNIEnv *env, jobject obj, jint index) { - lua_State *L; +jobject jcall_tonumberx(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; lua_Number result = 0.0; int isnum = 0; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index)) { + + if (checkindex(L, index)) + { result = lua_tonumberx(L, index, &isnum); } - if(isnum) { - const auto jobject obj1 = (*env)->CallStaticObjectMethod(env, double_class, valueof_double_id, (jdouble) result); - isnum = handlejavaexception(L,1); + if (isnum) + { + const auto jobject obj1 = (*thread_env)->CallStaticObjectMethod(thread_env, double_class, valueof_double_id, (jdouble)result); + isnum = handlejavaexception(L, 1); + JNLUA_DETACH_L; return obj1; } + JNLUA_DETACH_L; return NULL; } /* lua_topointer() */ -JNIEXPORT jlong JNICALL Java_com_naef_jnlua_LuaState_lua_1topointer(JNIEnv *env, jobject obj, jint index) { - lua_State *L; +jlong jcall_topointer(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; const void *result = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index)) { + if (checkindex(L, index)) + { result = lua_topointer(L, index); } + JNLUA_DETACH_L; return (jlong)(uintptr_t)result; } /* lua_tostring() */ JNLUA_THREADLOCAL const char *tostring_result; -static int tostring_protected(lua_State *L) { +static int tostring_protected(lua_State *L) +{ tostring_result = lua_tostring(L, 1); return 0; } -JNIEXPORT jstring JNICALL Java_com_naef_jnlua_LuaState_lua_1tostring(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - +jstring jcall_tostring(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; tostring_result = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index)) { + if (checkstack(L, JNLUA_MINSTACK) && checkindex(L, index)) + { index = lua_absindex(L, index); lua_pushcfunction(L, tostring_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 0); } - return tostring_result ? (*env)->NewStringUTF(env, tostring_result) : NULL; + jstring rtn = tostring_result ? (*thread_env)->NewStringUTF(thread_env, tostring_result) : NULL; + JNLUA_DETACH_L; + return rtn; } /* lua_type() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1type(JNIEnv *env, jobject obj, jint index) { - lua_State *L; +jint jcall_type(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)(!validindex(L, index) ? LUA_TNONE : lua_type(L, index)); - JNLUA_ENV(env); - L = getluathread(obj); - if (!validindex(L, index)) { - return LUA_TNONE; - } - return (jint)lua_type(L, index); + JNLUA_DETACH_L; + return rtn; } /* ---- Stack operations ---- */ /* lua_absindex() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1absindex (JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - return (jint) lua_absindex(L, index); +jint jcall_absindex(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + jint rtn = (jint)lua_absindex(L, index); + + JNLUA_DETACH_L; + return rtn; } /* lua_concat() */ JNLUA_THREADLOCAL int concat_n; -static int concat_protected(lua_State *L) { +static int concat_protected(lua_State *L) +{ lua_concat(L, concat_n); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1concat(JNIEnv *env, jobject obj, jint n) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkarg(n >= 0, "illegal count") - && checknelems(L, n)) { +void jcall_concat(JNIEnv *env, jobject obj, jint n) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checkarg(n >= 0, "illegal count") && checknelems(L, n)) + { concat_n = n; lua_pushcfunction(L, concat_protected); lua_insert(L, -n - 1); JNLUA_PCALL(L, n, 1); } + JNLUA_DETACH_L; } /* lua_copy() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1copy (JNIEnv *env, jobject obj, jint from_index, jint to_index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, from_index) - && checkindex(L, to_index)) { +void jcall_copy(JNIEnv *env, jobject obj, jint from_index, jint to_index) +{ + JNLUA_ENV_L; + if (checkindex(L, from_index) && checkindex(L, to_index)) + { lua_copy(L, from_index, to_index); } + JNLUA_DETACH_L; } /* lua_gettop() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1gettop(JNIEnv *env, jobject obj) { - lua_State *L; +jint jcall_gettop(JNIEnv *env, jobject obj) +{ + JNLUA_ENV_L; + jint rtn = (jint)lua_gettop(L); - JNLUA_ENV(env); - L = getluathread(obj); - return (jint)lua_gettop(L); + JNLUA_DETACH_L; + return rtn; } /* lua_insert() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1insert(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkrealindex(L, index)) { +void jcall_insert(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkrealindex(L, index)) + { lua_insert(L, index); } + JNLUA_DETACH_L; } /* lua_pop() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pop(JNIEnv *env, jobject obj, jint n) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkarg(n >= 0 && n <= lua_gettop(L), "illegal count")) { +void jcall_pop(JNIEnv *env, jobject obj, jint n) +{ + JNLUA_ENV_L; + if (checkarg(n >= 0 && n <= lua_gettop(L), "illegal count")) + { lua_pop(L, n); } + JNLUA_DETACH_L; } /* lua_pushvalue() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1pushvalue(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index)) { +void jcall_pushvalue(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checkindex(L, index)) + { lua_pushvalue(L, index); } + JNLUA_DETACH_L; } /* lua_remove() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1remove(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkrealindex(L, index)) { +void jcall_remove(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkrealindex(L, index)) + { lua_remove(L, index); } + JNLUA_DETACH_L; } /* lua_replace() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1replace(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index) - && checknelems(L, 1)) { +void jcall_replace(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkindex(L, index) && checknelems(L, 1)) + { lua_replace(L, index); } + JNLUA_DETACH_L; } /* lua_settop() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1settop(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if ((index >= 0 && (index <= lua_gettop(L) || checkstack(L, index - lua_gettop(L)))) - || (index < 0 && checkrealindex(L, index))) { +void jcall_settop(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if ((index >= 0 && (index <= lua_gettop(L) || checkstack(L, index - lua_gettop(L)))) || (index < 0 && checkrealindex(L, index))) + { lua_settop(L, index); } + JNLUA_DETACH_L; } /* ---- Table ---- */ /* lua_createtable() */ JNLUA_THREADLOCAL int createtable_narr; JNLUA_THREADLOCAL int createtable_nrec; -static int createtable_protected(lua_State *L) { +static int createtable_protected(lua_State *L) +{ lua_createtable(L, createtable_narr, createtable_nrec); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1createtable(JNIEnv *env, jobject obj, jint narr, jint nrec) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkarg(narr >= 0, "illegal array count") - && checkarg(nrec >= 0, "illegal record count")) { +void jcall_createtable(JNIEnv *env, jobject obj, jint narr, jint nrec) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checkarg(narr >= 0, "illegal array count") && checkarg(nrec >= 0, "illegal record count")) + { createtable_narr = narr; createtable_nrec = nrec; lua_pushcfunction(L, createtable_protected); JNLUA_PCALL(L, 0, 1); } + JNLUA_DETACH_L; } /* lua_findtable() */ JNLUA_THREADLOCAL const char *findtable_fname; JNLUA_THREADLOCAL int findtable_szhint; JNLUA_THREADLOCAL const char *findtable_result; -static int findtable_protected(lua_State *L) { +static int findtable_protected(lua_State *L) +{ findtable_result = luaL_findtable(L, 1, findtable_fname, findtable_szhint); return findtable_result ? 0 : 1; } -JNIEXPORT jstring JNICALL Java_com_naef_jnlua_LuaState_lua_1findtable(JNIEnv *env, jobject obj, jint index, jstring fname, int szhint) { - lua_State *L; - +jstring jcall_findtable(JNIEnv *env, jobject obj, jint index, jstring fname, int szhint) +{ + JNLUA_ENV_L; findtable_fname = NULL; findtable_result = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index) - && (findtable_fname = getstringchars(fname)) - && checkarg(szhint >= 0, "illegal size hint")) { + if (checkstack(L, JNLUA_MINSTACK) && checkindex(L, index) && (findtable_fname = getstringchars(fname)) && checkarg(szhint >= 0, "illegal size hint")) + { findtable_szhint = szhint; index = lua_absindex(L, index); lua_pushcfunction(L, findtable_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, LUA_MULTRET); } - if (findtable_fname) { + if (findtable_fname) + { releasestringchars(fname, findtable_fname); } - return findtable_result ? (*env)->NewStringUTF(env, findtable_result) : NULL; + jstring rtn = findtable_result ? (*thread_env)->NewStringUTF(thread_env, findtable_result) : NULL; + JNLUA_DETACH_L; + return rtn; } /* lua_getfield() */ JNLUA_THREADLOCAL const char *getfield_k; -static int getfield_protected(lua_State *L) { +static int getfield_protected(lua_State *L) +{ lua_getfield(L, 1, getfield_k); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1getfield(JNIEnv *env, jobject obj, jint index, jstring k) { - lua_State *L; - +void jcall_getfield(JNIEnv *env, jobject obj, jint index, jstring k) +{ + JNLUA_ENV_L; getfield_k = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE) - && (getfield_k = getstringchars(k))) { + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE) && (getfield_k = getstringchars(k))) + { index = lua_absindex(L, index); lua_pushcfunction(L, getfield_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 1); } - if (getfield_k) { + if (getfield_k) + { releasestringchars(k, getfield_k); } + JNLUA_DETACH_L; } /* lua_gettable() */ -static int gettable_protected(lua_State *L) { +static int gettable_protected(lua_State *L) +{ lua_gettable(L, 1); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1gettable(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE)) { +void jcall_gettable(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE)) + { index = lua_absindex(L, index); lua_pushcfunction(L, gettable_protected); lua_insert(L, -2); @@ -1437,37 +1597,38 @@ JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1gettable(JNIEnv *env, j lua_insert(L, -2); JNLUA_PCALL(L, 2, 1); } + JNLUA_DETACH_L; } /* lua_newtable() */ -static int newtable_protected(lua_State *L) { +static int newtable_protected(lua_State *L) +{ lua_newtable(L); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1newtable(JNIEnv *env, jobject obj) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK)) { +void jcall_newtable(JNIEnv *env, jobject obj) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK)) + { lua_pushcfunction(L, newtable_protected); JNLUA_PCALL(L, 0, 1); } + JNLUA_DETACH_L; } /* lua_next() */ JNLUA_THREADLOCAL int next_result; -static int next_protected(lua_State *L) { +static int next_protected(lua_State *L) +{ next_result = lua_next(L, 1); return next_result ? 2 : 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1next(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE)) { +jint jcall_next(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE)) + { index = lua_absindex(L, index); lua_pushcfunction(L, next_protected); lua_insert(L, -2); @@ -1475,45 +1636,43 @@ JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1next(JNIEnv *env, jobje lua_insert(L, -2); JNLUA_PCALL(L, 2, LUA_MULTRET); } + JNLUA_DETACH_L; return (jint)next_result; } /* lua_rawget() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1rawget(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checktype(L, index, LUA_TTABLE)) { +void jcall_rawget(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checktype(L, index, LUA_TTABLE)) + { lua_rawget(L, index); } + JNLUA_DETACH_L; } /* lua_rawgeti() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1rawgeti(JNIEnv *env, jobject obj, jint index, jint n) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE)) { +void jcall_rawgeti(JNIEnv *env, jobject obj, jint index, jint n) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE)) + { lua_rawgeti(L, index, n); } + JNLUA_DETACH_L; } /* lua_rawset() */ -static int rawset_protected(lua_State *L) { +static int rawset_protected(lua_State *L) +{ lua_rawset(L, 1); return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1rawset(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE) - && checknelems(L, 2)) { +void jcall_rawset(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE) && checknelems(L, 2)) + { index = lua_absindex(L, index); lua_pushcfunction(L, rawset_protected); lua_insert(L, -3); @@ -1521,21 +1680,21 @@ JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1rawset(JNIEnv *env, job lua_insert(L, -3); JNLUA_PCALL(L, 3, 0); } + JNLUA_DETACH_L; } /* lua_rawseti() */ JNLUA_THREADLOCAL int rawseti_n; -static int rawseti_protected(lua_State *L) { +static int rawseti_protected(lua_State *L) +{ lua_rawseti(L, 1, rawseti_n); return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1rawseti(JNIEnv *env, jobject obj, jint index, jint n) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE)) { +void jcall_rawseti(JNIEnv *env, jobject obj, jint index, jint n) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE)) + { rawseti_n = n; index = lua_absindex(L, index); lua_pushcfunction(L, rawseti_protected); @@ -1544,21 +1703,20 @@ JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1rawseti(JNIEnv *env, jo lua_insert(L, -2); JNLUA_PCALL(L, 2, 0); } + JNLUA_DETACH_L; } /* lua_settable() */ -static int settable_protected(lua_State *L) { +static int settable_protected(lua_State *L) +{ lua_settable(L, 1); return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1settable(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE) - && checknelems(L, 2)) { +void jcall_settable(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE) && checknelems(L, 2)) + { index = lua_absindex(L, index); lua_pushcfunction(L, settable_protected); lua_insert(L, -3); @@ -1566,23 +1724,22 @@ JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1settable(JNIEnv *env, j lua_insert(L, -3); JNLUA_PCALL(L, 3, 0); } + JNLUA_DETACH_L; } /* lua_setfield() */ JNLUA_THREADLOCAL const char *setfield_k; -static int setfield_protected(lua_State *L) { +static int setfield_protected(lua_State *L) +{ lua_setfield(L, 1, setfield_k); return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1setfield(JNIEnv *env, jobject obj, jint index, jstring k) { - lua_State *L; - +void jcall_setfield(JNIEnv *env, jobject obj, jint index, jstring k) +{ + JNLUA_ENV_L; setfield_k = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE) - && (setfield_k = getstringchars(k))) { + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE) && (setfield_k = getstringchars(k))) + { index = lua_absindex(L, index); lua_pushcfunction(L, setfield_protected); lua_insert(L, -2); @@ -1590,97 +1747,94 @@ JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1setfield(JNIEnv *env, j lua_insert(L, -2); JNLUA_PCALL(L, 2, 0); } - if (setfield_k) { + if (setfield_k) + { releasestringchars(k, setfield_k); } + JNLUA_DETACH_L; } /* ---- Metatable ---- */ /* lua_getmetatable() */ -JNIEXPORT int JNICALL Java_com_naef_jnlua_LuaState_lua_1getmetatable(JNIEnv *env, jobject obj, jint index) { - lua_State *L; +int jcall_getmetatable(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; int result = 0; - - JNLUA_ENV(env); - L = getluathread(obj); - if (lua_checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index)) { + if (lua_checkstack(L, JNLUA_MINSTACK) && checkindex(L, index)) + { result = lua_getmetatable(L, index); } + JNLUA_DETACH_L; return (jint)result; } - /* lua_setmetatable() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1setmetatable(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index) - && checknelems(L, 1) - && checkarg(lua_type(L, -1) == LUA_TTABLE || lua_type(L, -1) == LUA_TNIL, "illegal type")) { +void jcall_setmetatable(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkindex(L, index) && checknelems(L, 1) && checkarg(lua_type(L, -1) == LUA_TTABLE || lua_type(L, -1) == LUA_TNIL, "illegal type")) + { lua_setmetatable(L, index); } + JNLUA_DETACH_L; } /* lua_getmetafield() */ JNLUA_THREADLOCAL const char *getmetafield_k; -JNLUA_THREADLOCAL int getmetafield_result; -static int getmetafield_protected(lua_State *L) { +int getmetafield_result; +static int getmetafield_protected(lua_State *L) +{ getmetafield_result = luaL_getmetafield(L, 1, getmetafield_k); return getmetafield_result ? 1 : 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1getmetafield(JNIEnv *env, jobject obj, jint index, jstring k) { - lua_State *L; - +jint jcall_getmetafield(JNIEnv *env, jobject obj, jint index, jstring k) +{ + JNLUA_ENV_L; getmetafield_k = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index) - && (getmetafield_k = getstringchars(k))) { + if (checkstack(L, JNLUA_MINSTACK) && checkindex(L, index) && (getmetafield_k = getstringchars(k))) + { index = lua_absindex(L, index); lua_pushcfunction(L, getmetafield_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, LUA_MULTRET); } - if (getmetafield_k) { + if (getmetafield_k) + { releasestringchars(k, getmetafield_k); } + JNLUA_DETACH_L; return (jint)getmetafield_result; } /* ---- Function environment ---- */ /* lua_getfenv() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1getfenv(JNIEnv *env, jobject obj, jint index) { - lua_State* L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checkindex(L, index)) { +void jcall_getfenv(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checkindex(L, index)) + { lua_getfenv(L, index); } + JNLUA_DETACH_L; } /* lua_setfenv() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1setfenv(JNIEnv *env, jobject obj, jint index) { - lua_State* L; +jint jcall_setfenv(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; int result = 0; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkindex(L, index) - && checktype(L, -1, LUA_TTABLE)) { + if (checkindex(L, index) && checktype(L, -1, LUA_TTABLE)) + { result = lua_setfenv(L, index); } + JNLUA_DETACH_L; return (jint)result; } /* ---- Thread ---- */ /* lua_newthread() */ -static int newthread_protected(lua_State *L) { +static int newthread_protected(lua_State *L) +{ lua_State *T; T = lua_newthread(L); @@ -1688,39 +1842,39 @@ static int newthread_protected(lua_State *L) { lua_xmove(L, T, 1); return 1; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1newthread(JNIEnv *env, jobject obj) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, -1, LUA_TFUNCTION)) { +void jcall_newthread(JNIEnv *env, jobject obj) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, -1, LUA_TFUNCTION)) + { lua_pushcfunction(L, newthread_protected); lua_insert(L, -2); JNLUA_PCALL(L, 1, 1); } + JNLUA_DETACH_L; } /* lua_resume() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1resume(JNIEnv *env, jobject obj, jint index, jint nargs) { - lua_State *L, *T; +jint jcall_resume(JNIEnv *env, jobject obj, jint index, jint nargs) +{ + JNLUA_ENV_L; + lua_State *T; int status; int nresults = 0; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checktype(L, index, LUA_TTHREAD) - && checkarg(nargs >= 0, "illegal argument count") - && checknelems(L, nargs + 1)) { + if (checktype(L, index, LUA_TTHREAD) && checkarg(nargs >= 0, "illegal argument count") && checknelems(L, nargs + 1)) + { T = lua_tothread(L, index); - if (checkstack(T, nargs)) { + if (checkstack(T, nargs)) + { lua_xmove(L, T, nargs); status = lua_resume(T, nargs); - switch (status) { + switch (status) + { case 0: case LUA_YIELD: nresults = lua_gettop(T); - if (checkstack(L, nresults)) { + if (checkstack(L, nresults)) + { lua_xmove(T, L, nresults); } break; @@ -1729,51 +1883,49 @@ JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1resume(JNIEnv *env, job } } } + JNLUA_DETACH_L; return (jint)nresults; } /* lua_status() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1status(JNIEnv *env, jobject obj, jint index) { - lua_State *L; +jint jcall_status(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; int result = 0; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checktype(L, index, LUA_TTHREAD)) { + if (checktype(L, index, LUA_TTHREAD)) + { result = lua_status(lua_tothread(L, index)); } + JNLUA_DETACH_L; return (jint)result; } /* lua_yield() */ -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1yield(JNIEnv *env, jobject obj, int nresults) { - lua_State *L; +jint jcall_yield(JNIEnv *env, jobject obj, int nresults) +{ + JNLUA_ENV_L; int result = 0; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkarg(nresults >= 0, "illegal return count") - && checknelems(L, nresults) - && checkstate(L != getluastate(obj), "not in a thread")) { + if (checkarg(nresults >= 0, "illegal return count") && checknelems(L, nresults) && checkstate(L != getluastate(obj), "not in a thread")) + { result = lua_yield(L, nresults); } + JNLUA_DETACH_L; return (jint)result; } /* ---- Reference ---- */ /* lua_ref() */ JNLUA_THREADLOCAL int ref_result; -static int ref_protected(lua_State *L) { +static int ref_protected(lua_State *L) +{ ref_result = luaL_ref(L, 1); return 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1ref(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE)) { +jint jcall_ref(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE)) + { index = lua_absindex(L, index); lua_pushcfunction(L, ref_protected); lua_insert(L, -2); @@ -1781,49 +1933,53 @@ JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1ref(JNIEnv *env, jobjec lua_insert(L, -2); JNLUA_PCALL(L, 2, 0); } + JNLUA_DETACH_L; return (jint)ref_result; } /* lua_unref() */ JNLUA_THREADLOCAL int unref_ref; -static int unref_protected(lua_State *L) { +static int unref_protected(lua_State *L) +{ luaL_unref(L, 1, unref_ref); return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1unref(JNIEnv *env, jobject obj, jint index, jint ref) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE)) { +void jcall_unref(JNIEnv *env, jobject obj, jint index, jint ref) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE)) + { unref_ref = ref; index = lua_absindex(L, index); lua_pushcfunction(L, unref_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 0); } + JNLUA_DETACH_L; } -JNIEXPORT jobject JNICALL Java_com_naef_jnlua_LuaState_lua_1getstack(JNIEnv *env, jobject obj, jint level) { - lua_State *L; +jobject jcall_getstack(JNIEnv *env, jobject obj, jint level) +{ + JNLUA_ENV_L; lua_Debug *ar = NULL; jobject result = NULL; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkarg(level >= 0, "illegal level")) { + if (checkarg(level >= 0, "illegal level")) + { ar = malloc(sizeof(lua_Debug)); - if (ar) { + if (ar) + { memset(ar, 0, sizeof(lua_Debug)); - if (lua_getstack(L, level, ar)) { - result = (*env)->NewObject(env, luadebug_class, luadebug_init_id, (jlong)(uintptr_t)ar, JNI_TRUE); + if (lua_getstack(L, level, ar)) + { + result = (*thread_env)->NewObject(thread_env, luadebug_class, luadebug_init_id, (jlong)(uintptr_t)ar, JNI_TRUE); } } } - if (!result) { + if (!result) + { free(ar); } + JNLUA_DETACH_L; return result; } @@ -1832,108 +1988,117 @@ JNLUA_THREADLOCAL const char *getinfo_what; JNLUA_THREADLOCAL jobject getinfo_ar; JNLUA_THREADLOCAL int getinfo_result; /* Returns the Lua debug structure in a Java debug object. */ -static lua_Debug *getluadebug(jobject javadebug) { +static lua_Debug *getluadebug(jobject javadebug) +{ return (lua_Debug *)(uintptr_t)(*thread_env)->GetLongField(thread_env, javadebug, luadebug_field_id); } -static int getinfo_protected(lua_State *L) { +static int getinfo_protected(lua_State *L) +{ getinfo_result = lua_getinfo(L, getinfo_what, getluadebug(getinfo_ar)); return 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1getinfo(JNIEnv *env, jobject obj, jstring what, jobject ar) { - lua_State *L; - +jint jcall_getinfo(JNIEnv *env, jobject obj, jstring what, jobject ar) +{ + JNLUA_ENV_L; getinfo_what = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && (getinfo_what = getstringchars(what)) - && checknotnull(ar)) { + if (checkstack(L, JNLUA_MINSTACK) && (getinfo_what = getstringchars(what)) && checknotnull(ar)) + { getinfo_ar = ar; lua_pushcfunction(L, getinfo_protected); JNLUA_PCALL(L, 0, 0); } - if (getinfo_what) { + if (getinfo_what) + { releasestringchars(what, getinfo_what); } + (*thread_env)->DeleteLocalRef(thread_env,what); + (*thread_env)->DeleteLocalRef(thread_env,ar); + JNLUA_DETACH_L; return getinfo_result; } - /* ---- Function arguments ---- */ /* Returns the current function name. */ JNLUA_THREADLOCAL const char *funcname_result; -static int funcname_protected(lua_State *L) { +static int funcname_protected(lua_State *L) +{ lua_Debug ar; - if (lua_getstack(L, 1, &ar) && lua_getinfo(L, "n", &ar)) { + if (lua_getstack(L, 1, &ar) && lua_getinfo(L, "n", &ar)) + { funcname_result = ar.name; } return 0; } -JNIEXPORT jstring JNICALL Java_com_naef_jnlua_LuaState_lua_1funcname(JNIEnv *env, jobject obj) { - lua_State* L; - +jstring jcall_funcname(JNIEnv *env, jobject obj) +{ + JNLUA_ENV_L; funcname_result = NULL; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK)) { + if (checkstack(L, JNLUA_MINSTACK)) + { lua_pushcfunction(L, funcname_protected); JNLUA_PCALL(L, 0, 0); } - return funcname_result ? (*env)->NewStringUTF(env, funcname_result) : NULL; + jstring rtn = funcname_result ? (*thread_env)->NewStringUTF(thread_env, funcname_result) : NULL; + JNLUA_DETACH_L; + return rtn; } /* Returns the effective argument number, adjusting for methods. */ JNLUA_THREADLOCAL int narg_result; -static int narg_protected(lua_State *L) { +static int narg_protected(lua_State *L) +{ lua_Debug ar; - if (lua_getstack(L, 1, &ar) && lua_getinfo(L, "n", &ar)) { - if (ar.namewhat && strcmp(ar.namewhat, "method") == 0) { + if (lua_getstack(L, 1, &ar) && lua_getinfo(L, "n", &ar)) + { + if (ar.namewhat && strcmp(ar.namewhat, "method") == 0) + { narg_result--; } } return 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1narg(JNIEnv *env, jobject obj, jint narg) { - lua_State *L; - +jint jcall_narg(JNIEnv *env, jobject obj, jint narg) +{ + JNLUA_ENV_L; narg_result = narg; - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK)) { + if (checkstack(L, JNLUA_MINSTACK)) + { lua_pushcfunction(L, narg_protected); JNLUA_PCALL(L, 0, 0); } + JNLUA_DETACH_L; return (jint)narg_result; } /* ---- Optimization ---- */ /* lua_tablesize() */ JNLUA_THREADLOCAL int tablesize_result; -static int tablesize_protected(lua_State *L) { +static int tablesize_protected(lua_State *L) +{ int count = 0; lua_pushnil(L); - while (lua_next(L, -2)) { + while (lua_next(L, -2)) + { lua_pop(L, 1); count++; } tablesize_result = count; return 0; } -JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1tablesize(JNIEnv *env, jobject obj, jint index) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE)) { +jint jcall_tablesize(JNIEnv *env, jobject obj, jint index) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE)) + { index = lua_absindex(L, index); lua_pushcfunction(L, tablesize_protected); lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 0); } + JNLUA_DETACH_L; return (jint)tablesize_result; } @@ -1941,31 +2106,34 @@ JNIEXPORT jint JNICALL Java_com_naef_jnlua_LuaState_lua_1tablesize(JNIEnv *env, JNLUA_THREADLOCAL int tablemove_from; JNLUA_THREADLOCAL int tablemove_to; JNLUA_THREADLOCAL int tablemove_count; -static int tablemove_protected(lua_State *L) { +static int tablemove_protected(lua_State *L) +{ int from = tablemove_from, to = tablemove_to; int count = tablemove_count, i; - if (from < to) { - for (i = count - 1; i >= 0; i--) { + if (from < to) + { + for (i = count - 1; i >= 0; i--) + { lua_rawgeti(L, 1, from + i); lua_rawseti(L, 1, to + i); } - } else if (from > to) { - for (i = 0; i < count; i++) { + } + else if (from > to) + { + for (i = 0; i < count; i++) + { lua_rawgeti(L, 1, from + i); lua_rawseti(L, 1, to + i); } } return 0; } -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1tablemove(JNIEnv *env, jobject obj, jint index, jint from, jint to, jint count) { - lua_State *L; - - JNLUA_ENV(env); - L = getluathread(obj); - if (checkstack(L, JNLUA_MINSTACK) - && checktype(L, index, LUA_TTABLE) - && checkarg(count >= 0, "illegal count")) { +void jcall_tablemove(JNIEnv *env, jobject obj, jint index, jint from, jint to, jint count) +{ + JNLUA_ENV_L; + if (checkstack(L, JNLUA_MINSTACK) && checktype(L, index, LUA_TTABLE) && checkarg(count >= 0, "illegal count")) + { tablemove_from = from; tablemove_to = to; tablemove_count = count; @@ -1974,304 +2142,465 @@ JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_lua_1tablemove(JNIEnv *env, lua_pushvalue(L, index); JNLUA_PCALL(L, 1, 0); } + JNLUA_DETACH_L; } /* ---- Debug structure ---- */ /* Sets the Lua debug structure in a Java debug object. */ -static void setluadebug(jobject javadebug, lua_Debug *ar) { +static void setluadebug(jobject javadebug, lua_Debug *ar) +{ (*thread_env)->SetLongField(thread_env, javadebug, luadebug_field_id, (jlong)(uintptr_t)ar); } /* lua_debugfree() */ -JNIEXPORT void JNICALL Java_com_naef_jnlua_LuaState_00024LuaDebug_lua_1debugfree(JNIEnv *env, jobject obj) { +void jcall_debugfree(JNIEnv *env, jobject obj) +{ lua_Debug *ar; - JNLUA_ENV(env); + JNLUA_ENV; ar = getluadebug(obj); setluadebug(obj, NULL); free(ar); + JNLUA_DETACH; } /* lua_debugname() */ -JNIEXPORT jstring JNICALL Java_com_naef_jnlua_LuaState_00024LuaDebug_lua_1debugname(JNIEnv *env, jobject obj) { +jstring jcall_debugname(JNIEnv *env, jobject obj) +{ lua_Debug *ar; - JNLUA_ENV(env); + JNLUA_ENV; ar = getluadebug(obj); - return ar != NULL && ar->name != NULL ? (*env)->NewStringUTF(env, ar->name) : NULL; + jstring rtn = ar != NULL && ar->name != NULL ? (*thread_env)->NewStringUTF(thread_env, ar->name) : NULL; + JNLUA_DETACH; + return rtn; } /* lua_debugnamewhat() */ -JNIEXPORT jstring JNICALL Java_com_naef_jnlua_LuaState_00024LuaDebug_lua_1debugnamewhat(JNIEnv *env, jobject obj) { +jstring jcall_debugnamewhat(JNIEnv *env, jobject obj) +{ lua_Debug *ar; - JNLUA_ENV(env); + JNLUA_ENV; ar = getluadebug(obj); - return ar != NULL && ar->namewhat != NULL ? (*env)->NewStringUTF(env, ar->namewhat) : NULL; -} - + jstring rtn = ar != NULL && ar->namewhat != NULL ? (*thread_env)->NewStringUTF(thread_env, ar->namewhat) : NULL; + JNLUA_DETACH; + return rtn; +} + +static JNINativeMethod luastate_native_map[] = { + {"lua_absindex", "(I)I", (void *)jcall_absindex}, + {"lua_close", "(Z)V", (void *)jcall_close}, + {"lua_concat", "(I)V", (void *)jcall_concat}, + {"lua_copy", "(II)V", (void *)jcall_copy}, + {"lua_createtable", "(II)V", (void *)jcall_createtable}, + {"lua_dump", "(Ljava/io/OutputStream;)V", (void *)jcall_dump}, + {"lua_equal", "(II)I", (void *)jcall_equal}, + {"lua_findtable", "(ILjava/lang/String;I)Ljava/lang/String;", (void *)jcall_findtable}, + {"lua_funcname", "()Ljava/lang/String;", (void *)jcall_funcname}, + {"lua_gc", "(II)I", (void *)jcall_gc}, + {"lua_getfenv", "(I)V", (void *)jcall_getfenv}, + {"lua_getfield", "(ILjava/lang/String;)V", (void *)jcall_getfield}, + {"lua_getglobal", "(Ljava/lang/String;)V", (void *)jcall_getglobal}, + {"lua_getinfo", "(Ljava/lang/String;Lcom/naef/jnlua/LuaState$LuaDebug;)I", (void *)jcall_getinfo}, + {"lua_getmetafield", "(ILjava/lang/String;)I", (void *)jcall_getmetafield}, + {"lua_getmetatable", "(I)I", (void *)jcall_getmetatable}, + {"lua_getstack", "(I)Lcom/naef/jnlua/LuaState$LuaDebug;", (void *)jcall_getstack}, + {"lua_gettable", "(I)V", (void *)jcall_gettable}, + {"lua_gettop", "()I", (void *)jcall_gettop}, + {"lua_insert", "(I)V", (void *)jcall_insert}, + {"lua_isboolean", "(I)I", (void *)jcall_isboolean}, + {"lua_iscfunction", "(I)I", (void *)jcall_iscfunction}, + {"lua_isfunction", "(I)I", (void *)jcall_isfunction}, + {"lua_isjavafunction", "(I)I", (void *)jcall_isjavafunction}, + {"lua_isjavaobject", "(I)I", (void *)jcall_isjavaobject}, + {"lua_isnil", "(I)I", (void *)jcall_isnil}, + {"lua_isnone", "(I)I", (void *)jcall_isnone}, + {"lua_isnoneornil", "(I)I", (void *)jcall_isnoneornil}, + {"lua_isnumber", "(I)I", (void *)jcall_isnumber}, + {"lua_isstring", "(I)I", (void *)jcall_isstring}, + {"lua_istable", "(I)I", (void *)jcall_istable}, + {"lua_isthread", "(I)I", (void *)jcall_isthread}, + {"lua_lessthan", "(II)I", (void *)jcall_lessthan}, + {"lua_load", "(Ljava/io/InputStream;Ljava/lang/String;Ljava/lang/String;)V", (void *)jcall_load}, + {"lua_narg", "(I)I", (void *)jcall_narg}, + {"lua_newstate", "(IJ)V", (void *)jcall_newstate}, + {"lua_newtable", "()V", (void *)jcall_newtable}, + {"lua_newthread", "()V", (void *)jcall_newthread}, + {"lua_next", "(I)I", (void *)jcall_next}, + {"lua_objlen", "(I)I", (void *)jcall_objlen}, + {"lua_openlib", "(I)V", (void *)jcall_openlib}, + {"lua_openlibs", "()V", (void *)jcall_openlibs}, + {"lua_pcall", "(II)V", (void *)jcall_pcall}, + {"lua_pop", "(I)V", (void *)jcall_pop}, + {"lua_pushboolean", "(I)V", (void *)jcall_pushboolean}, + {"lua_pushbytearray", "([B)V", (void *)jcall_pushbytearray}, + {"lua_pushinteger", "(J)V", (void *)jcall_pushinteger}, + {"lua_pushjavafunction", "(Lcom/naef/jnlua/JavaFunction;)V", (void *)jcall_pushjavafunction}, + {"lua_pushjavaobject", "(Ljava/lang/Object;)V", (void *)jcall_pushjavaobject}, + {"lua_pushjavaobjectl", "(Ljava/lang/Object;Ljava/lang/String;)V", (void *)jcall_pushjavaobjectl}, + {"lua_pushnil", "()V", (void *)jcall_pushnil}, + {"lua_pushnumber", "(D)V", (void *)jcall_pushnumber}, + {"lua_pushstring", "(Ljava/lang/String;)V", (void *)jcall_pushstring}, + {"lua_pushstr2num", "(Ljava/lang/String;)V", (void *)jcall_pushstr2num}, + {"lua_pushvalue", "(I)V", (void *)jcall_pushvalue}, + {"lua_rawequal", "(II)I", (void *)jcall_rawequal}, + {"lua_rawget", "(I)V", (void *)jcall_rawget}, + {"lua_rawgeti", "(II)V", (void *)jcall_rawgeti}, + {"lua_rawset", "(I)V", (void *)jcall_rawset}, + {"lua_rawseti", "(II)V", (void *)jcall_rawseti}, + {"lua_ref", "(I)I", (void *)jcall_ref}, + {"lua_registryindex", "()I", (void *)jcall_registryindex}, + {"lua_remove", "(I)V", (void *)jcall_remove}, + {"lua_replace", "(I)V", (void *)jcall_replace}, + {"lua_resume", "(II)I", (void *)jcall_resume}, + {"lua_setfenv", "(I)I", (void *)jcall_setfenv}, + {"lua_setfield", "(ILjava/lang/String;)V", (void *)jcall_setfield}, + {"lua_setglobal", "(Ljava/lang/String;)V", (void *)jcall_setglobal}, + {"lua_setmetatable", "(I)V", (void *)jcall_setmetatable}, + {"lua_settable", "(I)V", (void *)jcall_settable}, + {"lua_settop", "(I)V", (void *)jcall_settop}, + {"lua_status", "(I)I", (void *)jcall_status}, + {"lua_tablemove", "(IIII)V", (void *)jcall_tablemove}, + {"lua_tablesize", "(I)I", (void *)jcall_tablesize}, + {"lua_toboolean", "(I)I", (void *)jcall_toboolean}, + {"lua_tobytearray", "(I)[B", (void *)jcall_tobytearray}, + {"lua_tointeger", "(I)J", (void *)jcall_tointeger}, + {"lua_tointegerx", "(I)Ljava/lang/Long;", (void *)jcall_tointegerx}, + {"lua_tojavafunction", "(I)Lcom/naef/jnlua/JavaFunction;", (void *)jcall_tojavafunction}, + {"lua_tojavaobject", "(I)Ljava/lang/Object;", (void *)jcall_tojavaobject}, + {"lua_tonumber", "(I)D", (void *)jcall_tonumber}, + {"lua_tonumberx", "(I)Ljava/lang/Double;", (void *)jcall_tonumberx}, + {"lua_topointer", "(I)J", (void *)jcall_topointer}, + {"lua_tostring", "(I)Ljava/lang/String;", (void *)jcall_tostring}, + {"lua_type", "(I)I", (void *)jcall_type}, + {"lua_unref", "(II)V", (void *)jcall_unref}, + {"lua_version", "()Ljava/lang/String;", (void *)jcall_version}, + {"lua_yield", "(I)I", (void *)jcall_yield}}; + +static JNINativeMethod luadebug_native_map[] = { + {"lua_debugfree", "()V", (void *)jcall_debugfree}, + {"lua_debugname", "()Ljava/lang/String;", (void *)jcall_debugname}, + {"lua_debugnamewhat", "()Ljava/lang/String;", (void *)jcall_debugnamewhat}}; /* ---- JNI ---- */ /* Handles the loading of this library. */ -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { +JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) +{ JNIEnv *env; - + /* Ansca: Store the Java VM pointer to a global. To be used to safely fetch a JNIEnv pointer for the current thread. */ java_vm = vm; - + /* Get environment */ env = get_jni_env(); - (*env)->EnsureLocalCapacity(env,512); - (*env)-> PushLocalFrame(env,256); + (*env)->EnsureLocalCapacity(env, 512); + (*env)->PushLocalFrame(env, 256); /* Lookup and pin classes, fields and methods */ - if (!(luastate_class = referenceclass(env, "com/naef/jnlua/LuaState")) - || !(luastate_id = (*env)->GetFieldID(env, luastate_class, "luaState", "J")) - || !(luathread_id = (*env)->GetFieldID(env, luastate_class, "luaThread", "J")) - || !(luamemorytotal_id = (*env)->GetFieldID(env, luastate_class, "luaMemoryTotal", "I")) - || !(luamemoryused_id = (*env)->GetFieldID(env, luastate_class, "luaMemoryUsed", "I")) - || !(yield_id = (*env)->GetFieldID(env, luastate_class, "yield", "Z"))) { + if (!(luastate_class = referenceclass(env, "com/naef/jnlua/LuaState")) || !(luastate_id = (*env)->GetFieldID(env, luastate_class, "luaState", "J")) || !(luathread_id = (*env)->GetFieldID(env, luastate_class, "luaThread", "J")) || !(luamemorytotal_id = (*env)->GetFieldID(env, luastate_class, "luaMemoryTotal", "I")) || !(luamemoryused_id = (*env)->GetFieldID(env, luastate_class, "luaMemoryUsed", "I")) || !(yield_id = (*env)->GetFieldID(env, luastate_class, "yield", "Z"))) + { + luastate_class = NULL; + return JNLUA_JNIVERSION; + } + (*env)->RegisterNatives(env, luastate_class, luastate_native_map, sizeof(luastate_native_map) / sizeof(luastate_native_map[0])); + + if (!(print_id = (*env)->GetStaticMethodID(env, luastate_class, "println", "(Ljava/lang/String;)V"))) + { return JNLUA_JNIVERSION; } - if (!(luadebug_class = referenceclass(env, "com/naef/jnlua/LuaState$LuaDebug")) - || !(luadebug_init_id = (*env)->GetMethodID(env, luadebug_class, "", "(JZ)V")) - || !(luadebug_field_id = (*env)->GetFieldID(env, luadebug_class, "luaDebug", "J"))) { + if (!(luadebug_class = referenceclass(env, "com/naef/jnlua/LuaState$LuaDebug")) || !(luadebug_init_id = (*env)->GetMethodID(env, luadebug_class, "", "(JZ)V")) || !(luadebug_field_id = (*env)->GetFieldID(env, luadebug_class, "luaDebug", "J"))) + { + luadebug_class = NULL; return JNLUA_JNIVERSION; } - if (!(javafunction_interface = referenceclass(env, "com/naef/jnlua/JavaFunction")) - || !(invoke_id = (*env)->GetMethodID(env, javafunction_interface, "invoke", "(Lcom/naef/jnlua/LuaState;)I"))) { + (*env)->RegisterNatives(env, luadebug_class, luadebug_native_map, sizeof(luadebug_native_map) / sizeof(luadebug_native_map[0])); + + if (!(javafunction_interface = referenceclass(env, "com/naef/jnlua/JavaFunction")) || !(invoke_id = (*env)->GetMethodID(env, javafunction_interface, "invoke", "(Lcom/naef/jnlua/LuaState;)I"))) + { return JNLUA_JNIVERSION; } - if (!(luaruntimeexception_class = referenceclass(env, "com/naef/jnlua/LuaRuntimeException")) - || !(luaruntimeexception_id = (*env)->GetMethodID(env, luaruntimeexception_class, "", "(Ljava/lang/String;)V")) - || !(setluaerror_id = (*env)->GetMethodID(env, luaruntimeexception_class, "setLuaError", "(Lcom/naef/jnlua/LuaError;)V"))) { + if (!(luaruntimeexception_class = referenceclass(env, "com/naef/jnlua/LuaRuntimeException")) || !(luaruntimeexception_id = (*env)->GetMethodID(env, luaruntimeexception_class, "", "(Ljava/lang/String;)V")) || !(setluaerror_id = (*env)->GetMethodID(env, luaruntimeexception_class, "setLuaError", "(Lcom/naef/jnlua/LuaError;)V"))) + { return JNLUA_JNIVERSION; } - if (!(luasyntaxexception_class = referenceclass(env, "com/naef/jnlua/LuaSyntaxException")) - || !(luasyntaxexception_id = (*env)->GetMethodID(env, luasyntaxexception_class, "", "(Ljava/lang/String;)V"))) { + if (!(luasyntaxexception_class = referenceclass(env, "com/naef/jnlua/LuaSyntaxException")) || !(luasyntaxexception_id = (*env)->GetMethodID(env, luasyntaxexception_class, "", "(Ljava/lang/String;)V"))) + { return JNLUA_JNIVERSION; } - if (!(luamemoryallocationexception_class = referenceclass(env, "com/naef/jnlua/LuaMemoryAllocationException")) - || !(luamemoryallocationexception_id = (*env)->GetMethodID(env, luamemoryallocationexception_class, "", "(Ljava/lang/String;)V"))) { + if (!(luamemoryallocationexception_class = referenceclass(env, "com/naef/jnlua/LuaMemoryAllocationException")) || !(luamemoryallocationexception_id = (*env)->GetMethodID(env, luamemoryallocationexception_class, "", "(Ljava/lang/String;)V"))) + { return JNLUA_JNIVERSION; } - if (!(luagcmetamethodexception_class = referenceclass(env, "com/naef/jnlua/LuaGcMetamethodException")) - || !(luagcmetamethodexception_id = (*env)->GetMethodID(env, luagcmetamethodexception_class, "", "(Ljava/lang/String;)V"))) { + if (!(luagcmetamethodexception_class = referenceclass(env, "com/naef/jnlua/LuaGcMetamethodException")) || !(luagcmetamethodexception_id = (*env)->GetMethodID(env, luagcmetamethodexception_class, "", "(Ljava/lang/String;)V"))) + { return JNLUA_JNIVERSION; } - if (!(luamessagehandlerexception_class = referenceclass(env, "com/naef/jnlua/LuaMessageHandlerException")) - || !(luamessagehandlerexception_id = (*env)->GetMethodID(env, luamessagehandlerexception_class, "", "(Ljava/lang/String;)V"))) { + if (!(luamessagehandlerexception_class = referenceclass(env, "com/naef/jnlua/LuaMessageHandlerException")) || !(luamessagehandlerexception_id = (*env)->GetMethodID(env, luamessagehandlerexception_class, "", "(Ljava/lang/String;)V"))) + { return JNLUA_JNIVERSION; } - if (!(luastacktraceelement_class = referenceclass(env, "com/naef/jnlua/LuaStackTraceElement")) - || !(luastacktraceelement_id = (*env)->GetMethodID(env, luastacktraceelement_class, "", "(Ljava/lang/String;Ljava/lang/String;I)V"))) { + if (!(luastacktraceelement_class = referenceclass(env, "com/naef/jnlua/LuaStackTraceElement")) || !(luastacktraceelement_id = (*env)->GetMethodID(env, luastacktraceelement_class, "", "(Ljava/lang/String;Ljava/lang/String;I)V"))) + { return JNLUA_JNIVERSION; } - if (!(luaerror_class = referenceclass(env, "com/naef/jnlua/LuaError")) - || !(luaerror_id = (*env)->GetMethodID(env, luaerror_class, "", "(Ljava/lang/String;Ljava/lang/Throwable;)V")) - || !(setluastacktrace_id = (*env)->GetMethodID(env, luaerror_class, "setLuaStackTrace", "([Lcom/naef/jnlua/LuaStackTraceElement;)V"))) { + if (!(luaerror_class = referenceclass(env, "com/naef/jnlua/LuaError")) || !(luaerror_id = (*env)->GetMethodID(env, luaerror_class, "", "(Ljava/lang/String;Ljava/lang/Throwable;)V")) || !(setluastacktrace_id = (*env)->GetMethodID(env, luaerror_class, "setLuaStackTrace", "([Lcom/naef/jnlua/LuaStackTraceElement;)V"))) + { return JNLUA_JNIVERSION; } - if (!(nullpointerexception_class = referenceclass(env, "java/lang/NullPointerException"))) { + if (!(nullpointerexception_class = referenceclass(env, "java/lang/NullPointerException"))) + { return JNLUA_JNIVERSION; } - if (!(illegalargumentexception_class = referenceclass(env, "java/lang/IllegalArgumentException"))) { + if (!(illegalargumentexception_class = referenceclass(env, "java/lang/IllegalArgumentException"))) + { return JNLUA_JNIVERSION; } - if (!(illegalstateexception_class = referenceclass(env, "java/lang/IllegalStateException"))) { + if (!(illegalstateexception_class = referenceclass(env, "java/lang/IllegalStateException"))) + { return JNLUA_JNIVERSION; } - if (!(error_class = referenceclass(env, "java/lang/Error"))) { + if (!(error_class = referenceclass(env, "java/lang/Error"))) + { return JNLUA_JNIVERSION; } - if (!(integer_class = referenceclass(env, "java/lang/Integer")) - || !(valueof_integer_id = (*env)->GetStaticMethodID(env, integer_class, "valueOf", "(I)Ljava/lang/Integer;"))) { + if (!(integer_class = referenceclass(env, "java/lang/Long")) || !(valueof_integer_id = (*env)->GetStaticMethodID(env, integer_class, "valueOf", "(J)Ljava/lang/Long;"))) + { return JNLUA_JNIVERSION; } - if (!(double_class = referenceclass(env, "java/lang/Double")) - || !(valueof_double_id = (*env)->GetStaticMethodID(env, double_class, "valueOf", "(D)Ljava/lang/Double;"))) { + if (!(double_class = referenceclass(env, "java/lang/Double")) || !(valueof_double_id = (*env)->GetStaticMethodID(env, double_class, "valueOf", "(D)Ljava/lang/Double;"))) + { return JNLUA_JNIVERSION; } - if (!(inputstream_class = referenceclass(env, "java/io/InputStream")) - || !(read_id = (*env)->GetMethodID(env, inputstream_class, "read", "([B)I"))) { + if (!(inputstream_class = referenceclass(env, "java/io/InputStream")) || !(read_id = (*env)->GetMethodID(env, inputstream_class, "read", "([B)I"))) + { return JNLUA_JNIVERSION; } - if (!(outputstream_class = referenceclass(env, "java/io/OutputStream")) - || !(write_id = (*env)->GetMethodID(env, outputstream_class, "write", "([BII)V"))) { + if (!(outputstream_class = referenceclass(env, "java/io/OutputStream")) || !(write_id = (*env)->GetMethodID(env, outputstream_class, "write", "([BII)V"))) + { return JNLUA_JNIVERSION; } - if (!(ioexception_class = referenceclass(env, "java/io/IOException"))) { + if (!(ioexception_class = referenceclass(env, "java/io/IOException"))) + { return JNLUA_JNIVERSION; } /* OK */ - (*env)-> PopLocalFrame(env,NULL); + (*env)->PopLocalFrame(env, NULL); initialized = 1; return JNLUA_JNIVERSION; } /* Handles the unloading of this library. */ -JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) { +JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) +{ JNIEnv *env; /* Get environment */ env = get_jni_env(); - + /* Free classes */ - if (luastate_class) { + if (luastate_class) + { + (*env)->UnregisterNatives(env, luastate_class); (*env)->DeleteGlobalRef(env, luastate_class); } - if (javafunction_interface) { + if (luadebug_class) + { + (*env)->UnregisterNatives(env, luadebug_class); + (*env)->DeleteGlobalRef(env, luadebug_class); + } + if (javafunction_interface) + { (*env)->DeleteGlobalRef(env, javafunction_interface); } - if (luaruntimeexception_class) { + if (luaruntimeexception_class) + { (*env)->DeleteGlobalRef(env, luaruntimeexception_class); } - if (luasyntaxexception_class) { + if (luasyntaxexception_class) + { (*env)->DeleteGlobalRef(env, luasyntaxexception_class); } - if (luamemoryallocationexception_class) { + if (luamemoryallocationexception_class) + { (*env)->DeleteGlobalRef(env, luamemoryallocationexception_class); } - if (luagcmetamethodexception_class) { + if (luagcmetamethodexception_class) + { (*env)->DeleteGlobalRef(env, luagcmetamethodexception_class); } - if (luamessagehandlerexception_class) { + if (luamessagehandlerexception_class) + { (*env)->DeleteGlobalRef(env, luamessagehandlerexception_class); } - if (luastacktraceelement_class) { + if (luastacktraceelement_class) + { (*env)->DeleteGlobalRef(env, luastacktraceelement_class); } - if (luaerror_class) { + if (luaerror_class) + { (*env)->DeleteGlobalRef(env, luaerror_class); } - if (nullpointerexception_class) { + if (nullpointerexception_class) + { (*env)->DeleteGlobalRef(env, nullpointerexception_class); } - if (illegalargumentexception_class) { + if (illegalargumentexception_class) + { (*env)->DeleteGlobalRef(env, illegalargumentexception_class); } - if (illegalstateexception_class) { + if (illegalstateexception_class) + { (*env)->DeleteGlobalRef(env, illegalstateexception_class); } - if (error_class) { + if (error_class) + { (*env)->DeleteGlobalRef(env, error_class); } - if (integer_class) { + if (integer_class) + { (*env)->DeleteGlobalRef(env, integer_class); } - if (double_class) { + if (double_class) + { (*env)->DeleteGlobalRef(env, double_class); } - if (inputstream_class) { + if (inputstream_class) + { (*env)->DeleteGlobalRef(env, inputstream_class); } - if (outputstream_class) { + if (outputstream_class) + { (*env)->DeleteGlobalRef(env, outputstream_class); } - if (ioexception_class) { + if (ioexception_class) + { (*env)->DeleteGlobalRef(env, ioexception_class); } - + /* Ansca: Release the pointer to the Java VM. */ java_vm = NULL; } /* ---- JNI helpers ---- */ /* Finds a class and returns a new JNI global reference to it. */ -static jclass referenceclass(JNIEnv *env, const char *className) { +static jclass referenceclass(JNIEnv *env, const char *className) +{ jclass clazz; clazz = (*env)->FindClass(env, className); - if (!clazz) { + if (!clazz) + { return NULL; } return (*env)->NewGlobalRef(env, clazz); } /* Return a new JNI byte array. */ -static jbyteArray newbytearray(jsize length) { +static jbyteArray newbytearray(jsize length) +{ jbyteArray array; array = (*thread_env)->NewByteArray(thread_env, length); - if (!check(array != NULL, luamemoryallocationexception_class, "JNI error: NewByteArray() failed")) { + if (!check(array != NULL, luamemoryallocationexception_class, "JNI error: NewByteArray() failed")) + { return NULL; } return array; } /* Returns the UTF chars of a string. */ -static const char *getstringchars(jstring string) { +static const char *getstringchars(jstring string) +{ const char *utf; - if (!checknotnull(string)) { + if (!checknotnull(string)) + { return NULL; } utf = (*thread_env)->GetStringUTFChars(thread_env, string, NULL); - if (!check(utf != NULL, luamemoryallocationexception_class, "JNI error: GetStringUTFChars() failed")) { + if (!check(utf != NULL, luamemoryallocationexception_class, "JNI error: GetStringUTFChars() failed")) + { return NULL; } return utf; } /* Releaes the UTF chars of a string. */ -static void releasestringchars(jstring string, const char *chars) { +static void releasestringchars(jstring string, const char *chars) +{ (*thread_env)->ReleaseStringUTFChars(thread_env, string, chars); + (*thread_env)->DeleteLocalRef(thread_env, string); } /* ---- Java state operations ---- */ /* Returns the Lua state from the Java state. */ -static lua_State *getluastate(jobject javastate) { +static lua_State *getluastate(jobject javastate) +{ luastate_obj = javastate; return (lua_State *)(uintptr_t)(*thread_env)->GetLongField(thread_env, javastate, luastate_id); } /* Sets the Lua state in the Java state. */ -static void setluastate(jobject javastate, lua_State *L) { +static void setluastate(jobject javastate, lua_State *L) +{ (*thread_env)->SetLongField(thread_env, javastate, luastate_id, (jlong)(uintptr_t)L); } /* Returns the Lua thread from the Java state. */ -static lua_State *getluathread(jobject javastate) { +static lua_State *getluathread(jobject javastate) +{ luastate_obj = javastate; return (lua_State *)(uintptr_t)(*thread_env)->GetLongField(thread_env, javastate, luathread_id); } /* Sets the Lua state in the Java state. */ -static void setluathread(jobject javastate, lua_State *L) { +static void setluathread(jobject javastate, lua_State *L) +{ (*thread_env)->SetLongField(thread_env, javastate, luathread_id, (jlong)(uintptr_t)L); } /* Gets the amount of ram available and used for and by the current Lua state. */ -static void getluamemory(jint *total, jint *used) { +static void getluamemory(jint *total, jint *used) +{ *total = (*thread_env)->GetIntField(thread_env, luastate_obj, luamemorytotal_id); *used = (*thread_env)->GetIntField(thread_env, luastate_obj, luamemoryused_id); } /* Sets the amount of ram used by the current Lua state (called by allocator). */ -static void setluamemoryused(jint used) { +static void setluamemoryused(jint used) +{ (*thread_env)->SetIntField(thread_env, luastate_obj, luamemoryused_id, used); } /* Returns the yield flag from the Java state */ -static int getyield(jobject javastate) { +static int getyield(jobject javastate) +{ return (int)(*thread_env)->GetBooleanField(thread_env, javastate, yield_id); } /* Sets the yield flag in the Java state */ -static void setyield(jobject javastate, int yield) { - (*thread_env)->SetBooleanField(thread_env, javastate, yield_id, (jboolean) yield); +static void setyield(jobject javastate, int yield) +{ + (*thread_env)->SetBooleanField(thread_env, javastate, yield_id, (jboolean)yield); } /* ---- Checks ---- */ /* Returns whether an index is valid. */ -static int validindex(lua_State *L, int index) { +static int validindex(lua_State *L, int index) +{ int top; top = lua_gettop(L); - if (index <= 0) { - if (index > LUA_REGISTRYINDEX) { + if (index <= 0) + { + if (index > LUA_REGISTRYINDEX) + { index = top + index + 1; - } else { - switch (index) { + } + else + { + switch (index) + { case LUA_REGISTRYINDEX: case LUA_ENVIRONINDEX: case LUA_GLOBALSINDEX: @@ -2285,55 +2614,65 @@ static int validindex(lua_State *L, int index) { } /* Checks stack space. */ -static int checkstack(lua_State *L, int space) { +static int checkstack(lua_State *L, int space) +{ return check(lua_checkstack(L, space), illegalstateexception_class, "stack overflow"); } /* Checks if an index is valid. */ -static int checkindex(lua_State *L, int index) { +static int checkindex(lua_State *L, int index) +{ return checkarg(validindex(L, index), "illegal index"); } /* Checks if an index is valid, ignoring pseudo indexes. */ -static int checkrealindex(lua_State *L, int index) { +static int checkrealindex(lua_State *L, int index) +{ int top; top = lua_gettop(L); - if (index <= 0) { + if (index <= 0) + { index = top + index + 1; } return checkarg(index >= 1 && index <= top, "illegal index"); } /* Checks the type of a stack value. */ -static int checktype(lua_State *L, int index, int type) { - return checkindex(L, index) - && checkarg(lua_type(L, index) == type, "illegal type"); +static int checktype(lua_State *L, int index, int type) +{ + return checkindex(L, index) && checkarg(lua_type(L, index) == type, "illegal type"); } /* Checks that there are at least n values on the stack. */ -static int checknelems(lua_State *L, int n) { +static int checknelems(lua_State *L, int n) +{ return checkstate(lua_gettop(L) >= n, "stack underflow"); } /* Checks an argument for not-null. */ -static int checknotnull(void *object) { +static int checknotnull(void *object) +{ return check(object != NULL, nullpointerexception_class, "null"); } /* Checks an argument condition. */ -static int checkarg(int cond, const char *msg) { +static int checkarg(int cond, const char *msg) +{ return check(cond, illegalargumentexception_class, msg); } /* Checks a state condition. */ -static int checkstate(int cond, const char *msg) { +static int checkstate(int cond, const char *msg) +{ return check(cond, illegalstateexception_class, msg); } /* Checks a condition. */ -static int check(int cond, jthrowable throwable_class, const char *msg) { - if (cond) { +static int check(int cond, jthrowable throwable_class, const char *msg) +{ + if (cond) + { return 1; } (*thread_env)->ThrowNew(thread_env, throwable_class, msg); @@ -2342,43 +2681,53 @@ static int check(int cond, jthrowable throwable_class, const char *msg) { /* ---- Java objects and functions ---- */ /* Pushes a Java object on the stack. */ -static void pushjavaobject(lua_State *L, jobject object) { +static void pushjavaobject(lua_State *L, jobject object) +{ jobject *user_data; user_data = (jobject *)lua_newuserdata(L, sizeof(jobject)); *user_data = (*thread_env)->NewGlobalRef(thread_env, object); - if (!*user_data) { + if (!*user_data) + { lua_pushliteral(L, "JNI error: NewGlobalRef() failed pushing Java object"); lua_error(L); } int result = lua_getmetatable(L, -1); - if (result == 0) { + if (result == 0) + { luaL_getmetatable(L, JNLUA_OBJECT); lua_setmetatable(L, -2); } - else lua_pop(L, 1); + else + lua_pop(L, 1); } /* Returns the Java object at the specified index, or NULL if such an object is unobtainable. */ -static jobject tojavaobject(lua_State *L, int index, jclass class) { +static jobject tojavaobject(lua_State *L, int index, jclass class) +{ int result; jobject object; - if (!lua_isuserdata(L, index)) { + if (!lua_isuserdata(L, index)) + { return NULL; } - if (!lua_getmetatable(L, index)) { + if (!lua_getmetatable(L, index)) + { return NULL; } luaL_getmetatable(L, JNLUA_OBJECT); result = lua_rawequal(L, -1, -2); lua_pop(L, 2); - if (!result) { + if (!result) + { return NULL; } object = *(jobject *)lua_touserdata(L, index); - if (class) { - if (!(*thread_env)->IsInstanceOf(thread_env, object, class)) { + if (class) + { + if (!(*thread_env)->IsInstanceOf(thread_env, object, class)) + { return NULL; } } @@ -2386,11 +2735,14 @@ static jobject tojavaobject(lua_State *L, int index, jclass class) { } /* Returns a Java string for a value on the stack. */ -static jstring tostring(lua_State *L, int index) { +static jstring tostring(lua_State *L, int index) +{ jstring string; - if (!luaL_callmeta(L, index, "__tostring")) { - switch (lua_type(L, index)) { + if (!luaL_callmeta(L, index, "__tostring")) + { + switch (lua_type(L, index)) + { case LUA_TNUMBER: case LUA_TSTRING: lua_pushvalue(L, index); @@ -2411,45 +2763,53 @@ static jstring tostring(lua_State *L, int index) { } /* Finalizes Java objects. */ -static int gcjavaobject(lua_State *L) { +static int gcjavaobject(lua_State *L) +{ jobject obj; - if (!thread_env) { + if (!thread_env) + { /* Environment has been cleared as the Java VM was destroyed. Nothing to do. */ return 0; } obj = *(jobject *)lua_touserdata(L, 1); - if (lua_toboolean(L, lua_upvalueindex(1))) { + if (lua_toboolean(L, lua_upvalueindex(1))) + { (*thread_env)->DeleteWeakGlobalRef(thread_env, obj); - } else { + } + else + { (*thread_env)->DeleteGlobalRef(thread_env, obj); } return 0; } /* Calls a Java function. If an exception is reported, store it as the cause for later use. */ -static int calljavafunction(lua_State *L) { +static int calljavafunction(lua_State *L) +{ jobject luastate_obj_old, javastate, javafunction; lua_State *T; int nresults; int err; - + /* Get Java state. */ lua_getfield(L, LUA_REGISTRYINDEX, JNLUA_JAVASTATE); - if (!lua_isuserdata(L, -1)) { + if (!lua_isuserdata(L, -1)) + { /* Java state has been cleared as the Java VM was destroyed. Cannot call. */ lua_pushliteral(L, "no Java state"); return lua_error(L); } - (*thread_env)-> PushLocalFrame(thread_env,64); + (*thread_env)->PushLocalFrame(thread_env, 32); javastate = *(jobject *)lua_touserdata(L, -1); lua_pop(L, 1); - + /* Get Java function object. */ lua_pushvalue(L, lua_upvalueindex(1)); javafunction = tojavaobject(L, -1, javafunction_interface); lua_pop(L, 1); - if (!javafunction) { + if (!javafunction) + { /* Function was cleared from outside JNLua code. */ lua_pushliteral(L, "no Java function"); return lua_error(L); @@ -2458,39 +2818,51 @@ static int calljavafunction(lua_State *L) { /* Perform the call, handling coroutine situations. */ luastate_obj_old = luastate_obj; setyield(javastate, JNI_FALSE); - + T = getluathread(javastate); - if (T == L) { + if (T == L) + { nresults = (*thread_env)->CallIntMethod(thread_env, javafunction, invoke_id, javastate); - err = handlejavaexception(L,0); - } else { + err = handlejavaexception(L, 0); + } + else + { + //printf("%tu -> %tu\n",(long)(uintptr_t) T,(long)(uintptr_t) L); setluathread(javastate, L); nresults = (*thread_env)->CallIntMethod(thread_env, javafunction, invoke_id, javastate); - err = handlejavaexception(L,0); + err = handlejavaexception(L, 0); setluathread(javastate, T); } - (*thread_env)-> PopLocalFrame(thread_env,NULL); - luastate_obj = luastate_obj_old; - if(err) lua_error(T); + luastate_obj = luastate_obj_old; + if (err) + { + (*thread_env)->PopLocalFrame(thread_env, NULL); + lua_error(T); + } /* Handle yield */ - if (getyield(javastate)) { - if (nresults < 0 || nresults > lua_gettop(L)) { + if (getyield(javastate)) + { + if (nresults < 0 || nresults > lua_gettop(L)) + { lua_pushliteral(L, "illegal return count"); return lua_error(L); } - if (L == getluastate(javastate)) { + if (L == getluastate(javastate)) + { lua_pushliteral(L, "not in a thread"); return lua_error(L); } + (*thread_env)->PopLocalFrame(thread_env, NULL); return lua_yield(L, nresults); } - + (*thread_env)->PopLocalFrame(thread_env, NULL); return nresults; } /* Handles Lua errors. */ -static int messagehandler(lua_State *L) { +static int messagehandler(lua_State *L) +{ int level, count; lua_Debug ar; jobjectArray luastacktrace; @@ -2502,32 +2874,39 @@ static int messagehandler(lua_State *L) { /* Count relevant stack frames */ level = 1; count = 0; - while (lua_getstack(L, level, &ar)) { + while (lua_getstack(L, level, &ar)) + { lua_getinfo(L, "nSl", &ar); - if (isrelevant(&ar)) { + if (isrelevant(&ar)) + { count++; } level++; } - (*thread_env)-> PushLocalFrame(thread_env,64); + (*thread_env)->PushLocalFrame(thread_env, 64); /* Create Lua stack trace as a Java LuaStackTraceElement[] */ luastacktrace = (*thread_env)->NewObjectArray(thread_env, count, luastacktraceelement_class, NULL); - if (!luastacktrace) { + if (!luastacktrace) + { goto END; } level = 1; count = 0; - while (lua_getstack(L, level, &ar)) { + while (lua_getstack(L, level, &ar)) + { lua_getinfo(L, "nSl", &ar); - if (isrelevant(&ar)) { + if (isrelevant(&ar)) + { name = ar.name ? (*thread_env)->NewStringUTF(thread_env, ar.name) : NULL; source = ar.source ? (*thread_env)->NewStringUTF(thread_env, ar.source) : NULL; luastacktraceelement = (*thread_env)->NewObject(thread_env, luastacktraceelement_class, luastacktraceelement_id, name, source, ar.currentline); - if (!luastacktraceelement) { + if (!luastacktraceelement) + { goto END; } (*thread_env)->SetObjectArrayElement(thread_env, luastacktrace, count, luastacktraceelement); - if ((*thread_env)->ExceptionCheck(thread_env)) { + if ((*thread_env)->ExceptionCheck(thread_env)) + { goto END; } count++; @@ -2537,32 +2916,39 @@ static int messagehandler(lua_State *L) { /* Get or create the error object */ luaerror = tojavaobject(L, -1, luaerror_class); - if (!luaerror) { + if (!luaerror) + { message = tostring(L, -1); - if (!(luaerror = (*thread_env)->NewObject(thread_env, luaerror_class, luaerror_id, message, NULL))) { + if (!(luaerror = (*thread_env)->NewObject(thread_env, luaerror_class, luaerror_id, message, NULL))) + { goto END; } } (*thread_env)->CallVoidMethod(thread_env, luaerror, setluastacktrace_id, luastacktrace); - handlejavaexception(L,1); + handlejavaexception(L, 1); /* Replace error */ pushjavaobject(L, luaerror); - END: - (*thread_env)-> PopLocalFrame(thread_env,NULL); +END: + (*thread_env)->PopLocalFrame(thread_env, NULL); return 1; } /* Processes a Lua activation record and returns whether it is relevant. */ -static int isrelevant(lua_Debug *ar) { - if (ar->name && strlen(ar->name) == 0) { +static int isrelevant(lua_Debug *ar) +{ + if (ar->name && strlen(ar->name) == 0) + { ar->name = NULL; } - if (ar->what && strcmp(ar->what, "C") == 0) { + if (ar->what && strcmp(ar->what, "C") == 0) + { ar->source = NULL; } - if (ar->source) { - if (*ar->source == '=' || *ar->source == '@') { + if (ar->source) + { + if (*ar->source == '=' || *ar->source == '@') + { ar->source++; } } @@ -2571,14 +2957,16 @@ static int isrelevant(lua_Debug *ar) { /* Handles Lua errors by throwing a Java exception. */ JNLUA_THREADLOCAL int throw_status; -static int throw_protected(lua_State *L) { +static int throw_protected(lua_State *L) +{ jclass class; jmethodID id; jthrowable throwable; jobject luaerror; /* Determine the type of exception to throw. */ - switch (throw_status) { + switch (throw_status) + { case LUA_ERRRUN: class = luaruntimeexception_class; id = luaruntimeexception_id; @@ -2602,34 +2990,40 @@ static int throw_protected(lua_State *L) { /* Create exception */ throwable = (*thread_env)->NewObject(thread_env, class, id, tostring(L, 1)); - if (!throwable) { + if (!throwable) + { lua_pushliteral(L, "JNI error: NewObject() failed creating throwable"); return lua_error(L); } /* Set the Lua error, if any. */ luaerror = tojavaobject(L, 1, luaerror_class); - if (luaerror && class == luaruntimeexception_class) { + if (luaerror && class == luaruntimeexception_class) + { (*thread_env)->CallVoidMethod(thread_env, throwable, setluaerror_id, luaerror); - handlejavaexception(L,1); + handlejavaexception(L, 1); } /* Throw */ - if ((*thread_env)->Throw(thread_env, throwable) < 0) { + if ((*thread_env)->Throw(thread_env, throwable) < 0) + { lua_pushliteral(L, "JNI error: Throw() failed"); return lua_error(L); } return 0; } -static void throw (lua_State *L, int status){ +static void throw(lua_State * L, int status) +{ const char *message; - if (checkstack(L, JNLUA_MINSTACK)) { + if (checkstack(L, JNLUA_MINSTACK)) + { throw_status = status; lua_pushcfunction(L, throw_protected); lua_insert(L, -2); - if (lua_pcall(L, 1, 0, 0) != 0) { + if (lua_pcall(L, 1, 0, 0) != 0) + { message = lua_tostring(L, -1); (*thread_env)->ThrowNew(thread_env, error_class, message ? message : "error throwing Lua exception"); } @@ -2638,26 +3032,32 @@ static void throw (lua_State *L, int status){ /* ---- Stream adapters ---- */ /* Lua reader for Java input streams. */ -static const char *readhandler(lua_State *L, void *ud, size_t *size) { +static const char *readhandler(lua_State *L, void *ud, size_t *size) +{ Stream *stream; int read; stream = (Stream *)ud; read = (*thread_env)->CallIntMethod(thread_env, stream->stream, read_id, stream->byte_array); - if ((*thread_env)->ExceptionCheck(thread_env)) { + if ((*thread_env)->ExceptionCheck(thread_env)) + { (*thread_env)->ExceptionClear(thread_env); return NULL; } - if (read == -1) { + if (read == -1) + { return NULL; } - if (stream->bytes && stream->is_copy) { + if (stream->bytes && stream->is_copy) + { (*thread_env)->ReleaseByteArrayElements(thread_env, stream->byte_array, stream->bytes, JNI_ABORT); stream->bytes = NULL; } - if (!stream->bytes) { + if (!stream->bytes) + { stream->bytes = (*thread_env)->GetByteArrayElements(thread_env, stream->byte_array, &stream->is_copy); - if (!stream->bytes) { + if (!stream->bytes) + { (*thread_env)->ThrowNew(thread_env, ioexception_class, "JNI error: GetByteArrayElements() failed accessing IO buffer"); return NULL; } @@ -2667,23 +3067,28 @@ static const char *readhandler(lua_State *L, void *ud, size_t *size) { } /* Lua writer for Java output streams. */ -static int writehandler(lua_State *L, const void *data, size_t size, void *ud) { +static int writehandler(lua_State *L, const void *data, size_t size, void *ud) +{ Stream *stream; stream = (Stream *)ud; - if (!stream->bytes) { + if (!stream->bytes) + { stream->bytes = (*thread_env)->GetByteArrayElements(thread_env, stream->byte_array, &stream->is_copy); - if (!stream->bytes) { + if (!stream->bytes) + { (*thread_env)->ThrowNew(thread_env, ioexception_class, "JNI error: GetByteArrayElements() failed accessing IO buffer"); return 1; } } memcpy(stream->bytes, data, size); - if (stream->is_copy) { + if (stream->is_copy) + { (*thread_env)->ReleaseByteArrayElements(thread_env, stream->byte_array, stream->bytes, JNI_COMMIT); } (*thread_env)->CallVoidMethod(thread_env, stream->stream, write_id, stream->byte_array, 0, size); - if ((*thread_env)->ExceptionCheck(thread_env)) { + if ((*thread_env)->ExceptionCheck(thread_env)) + { (*thread_env)->ExceptionClear(thread_env); return 1; } diff --git a/src/makefiles/LuaJIT_make.txt b/src/makefiles/LuaJIT_make.txt index e07eb679..0c921b1a 100644 --- a/src/makefiles/LuaJIT_make.txt +++ b/src/makefiles/LuaJIT_make.txt @@ -317,6 +317,7 @@ ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector TARGET_XCFLAGS+= -fno-stack-protector endif ifeq (Darwin,$(TARGET_SYS)) + MACOSX_DEPLOYMENT_TARGET=10.7 ifeq (,$(MACOSX_DEPLOYMENT_TARGET)) $(error missing: export MACOSX_DEPLOYMENT_TARGET=XX.YY) endif