Skip to content

Commit b6556fb

Browse files
committed
remove *const AutoRequireNoGC args from wrappers
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
1 parent 6ad1681 commit b6556fb

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

mozjs/src/rust.rs

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,6 +1357,7 @@ pub mod wrappers2 {
13571357
// @inner (input args) <> (accumulator) <> unparsed tokens
13581358
// when `unparsed tokens == \eps`, accumulator contains the final result
13591359

1360+
// create conversions for argument expressions
13601361
(@inner $saved:tt <> ($($acc:expr,)*) <> $arg:ident: *const Handle<$gentype:ty>, $($rest:tt)*) => {
13611362
wrap!(@inner $saved <> ($($acc,)* if $arg.is_null() { ::std::ptr::null() } else { &(*$arg).into() },) <> $($rest)*);
13621363
};
@@ -1426,7 +1427,18 @@ pub mod wrappers2 {
14261427
(@inner $saved:tt <> ($($acc:expr,)*) <> $arg:ident: $type:ty, $($rest:tt)*) => {
14271428
wrap!(@inner $saved <> ($($acc,)* $arg,) <> $($rest)*);
14281429
};
1430+
// here we transform arguments from signature of wrappers
14291431
(@inner ($module:tt: $func_name:ident ($($args:tt)*) -> $outtype:ty) <> ($($argexprs:expr,)*) <> ) => {
1432+
wrap!(@inner2 ($module: $func_name ($($argexprs,)*) -> $outtype) <> () <> $($args)* ,);
1433+
};
1434+
// remove *const AutoRequireNoGC marker argument
1435+
(@inner2 $saved:tt <> ($($acc:tt)*) <> $arg:ident: *const AutoRequireNoGC , $($rest:tt)*) => {
1436+
wrap!(@inner2 $saved <> ($($acc)*) <> $($rest)*);
1437+
};
1438+
(@inner2 $saved:tt <> ($($acc:tt)*) <> $arg:ident: $type:ty, $($rest:tt)*) => {
1439+
wrap!(@inner2 $saved <> ($($acc)* , $arg: $type) <> $($rest)*);
1440+
};
1441+
(@inner2 ($module:tt: $func_name:ident ($($argexprs:expr,)*) -> $outtype:ty) <> (, $($args:tt)*) <> ) => {
14301442
#[inline]
14311443
pub unsafe fn $func_name($($args)*) -> $outtype {
14321444
$module::$func_name($($argexprs),*)
@@ -1442,9 +1454,9 @@ pub mod wrappers2 {
14421454

14431455
use super::*;
14441456
use super::{
1445-
Handle, HandleFunction, HandleId, HandleObject, HandleScript, HandleString, HandleSymbol,
1446-
HandleValue, HandleValueArray, MutableHandle, MutableHandleId, MutableHandleObject,
1447-
MutableHandleString, MutableHandleValue, StackGCVector,
1457+
Handle, HandleFunction, HandleId, HandleObject, HandleScript, HandleString, HandleValue,
1458+
HandleValueArray, MutableHandle, MutableHandleId, MutableHandleObject, MutableHandleString,
1459+
MutableHandleValue, StackGCVector,
14481460
};
14491461
use crate::context::JSContext;
14501462
use crate::glue;
@@ -1458,15 +1470,8 @@ pub mod wrappers2 {
14581470
use crate::jsapi::CloneDataPolicy;
14591471
use crate::jsapi::ColumnNumberOneOrigin;
14601472
use crate::jsapi::CompartmentTransplantCallback;
1461-
use crate::jsapi::EnvironmentChain;
1462-
use crate::jsapi::JSONParseHandler;
1463-
use crate::jsapi::Latin1Char;
1464-
use crate::jsapi::PropertyKey;
1465-
use crate::jsapi::RealmOptions;
1466-
use crate::jsapi::TaggedColumnNumberOneOrigin;
1467-
use crate::jsapi::*;
1468-
//use jsapi::DynamicImportStatus;
14691473
use crate::jsapi::ESClass;
1474+
use crate::jsapi::EnvironmentChain;
14701475
use crate::jsapi::ExceptionStackBehavior;
14711476
use crate::jsapi::ForOfIterator;
14721477
use crate::jsapi::ForOfIterator_NonIterableBehavior;
@@ -1477,6 +1482,7 @@ pub mod wrappers2 {
14771482
use crate::jsapi::JSExnType;
14781483
use crate::jsapi::JSFunctionSpecWithHelp;
14791484
use crate::jsapi::JSJitInfo;
1485+
use crate::jsapi::JSONParseHandler;
14801486
use crate::jsapi::JSONWriteCallback;
14811487
use crate::jsapi::JSPrincipals;
14821488
use crate::jsapi::JSPropertySpec;
@@ -1485,13 +1491,16 @@ pub mod wrappers2 {
14851491
use crate::jsapi::JSScript;
14861492
use crate::jsapi::JSStructuredCloneData;
14871493
use crate::jsapi::JSType;
1494+
use crate::jsapi::Latin1Char;
14881495
use crate::jsapi::ModuleErrorBehaviour;
14891496
use crate::jsapi::ModuleType;
14901497
use crate::jsapi::MutableHandleIdVector;
14911498
use crate::jsapi::PromiseState;
14921499
use crate::jsapi::PromiseUserInputEventHandlingState;
1500+
use crate::jsapi::PropertyKey;
14931501
use crate::jsapi::ReadOnlyCompileOptions;
14941502
use crate::jsapi::Realm;
1503+
use crate::jsapi::RealmOptions;
14951504
use crate::jsapi::RefPtr;
14961505
use crate::jsapi::RegExpFlags;
14971506
use crate::jsapi::ScriptEnvironmentPreparer_Closure;
@@ -1501,11 +1510,13 @@ pub mod wrappers2 {
15011510
use crate::jsapi::StructuredCloneScope;
15021511
use crate::jsapi::Symbol;
15031512
use crate::jsapi::SymbolCode;
1513+
use crate::jsapi::TaggedColumnNumberOneOrigin;
15041514
use crate::jsapi::TranscodeBuffer;
15051515
use crate::jsapi::TwoByteChars;
15061516
use crate::jsapi::UniqueChars;
15071517
use crate::jsapi::Value;
15081518
use crate::jsapi::WasmModule;
1519+
use crate::jsapi::*;
15091520
use crate::jsapi::{ElementAdder, IsArrayAnswer, PropertyDescriptor};
15101521
use crate::jsapi::{JSFunction, JSNative, JSObject, JSString};
15111522
use crate::jsapi::{

0 commit comments

Comments
 (0)