@@ -4,7 +4,7 @@ use crate::thread::Thread;
44use async_recursion:: async_recursion;
55use ristretto_classfile:: VersionSpecification :: { Between , LessThanOrEqual } ;
66use ristretto_classfile:: { JAVA_11 , JAVA_21 } ;
7- use ristretto_classloader:: { Class , Value } ;
7+ use ristretto_classloader:: Value ;
88use ristretto_macros:: intrinsic_method;
99use std:: sync:: Arc ;
1010
@@ -18,10 +18,13 @@ pub(crate) async fn do_privileged_1(
1818 mut parameters : Parameters ,
1919) -> Result < Option < Value > > {
2020 let object = parameters. pop_object ( ) ?;
21- let class: Arc < Class > = object. class ( ) . clone ( ) ;
22- let method = class. try_get_method ( "run" , "()Ljava/lang/Object;" ) ?;
21+ let class_name = object. class ( ) . name ( ) . to_string ( ) ;
2322 thread
24- . execute ( & class, & method, & [ Value :: from ( object) ] )
23+ . invoke (
24+ & class_name,
25+ "run()Ljava/lang/Object;" ,
26+ & [ Value :: from ( object) ] ,
27+ )
2528 . await
2629}
2730
@@ -36,10 +39,13 @@ pub(crate) async fn do_privileged_2(
3639) -> Result < Option < Value > > {
3740 let _context = parameters. pop_object ( ) ?;
3841 let object = parameters. pop_object ( ) ?;
39- let class: Arc < Class > = object. class ( ) . clone ( ) ;
40- let method = class. try_get_method ( "run" , "()Ljava/lang/Object;" ) ?;
42+ let class_name = object. class ( ) . name ( ) . to_string ( ) ;
4143 thread
42- . execute ( & class, & method, & [ Value :: from ( object) ] )
44+ . invoke (
45+ & class_name,
46+ "run()Ljava/lang/Object;" ,
47+ & [ Value :: from ( object) ] ,
48+ )
4349 . await
4450}
4551
@@ -53,10 +59,13 @@ pub(crate) async fn do_privileged_3(
5359 mut parameters : Parameters ,
5460) -> Result < Option < Value > > {
5561 let object = parameters. pop_object ( ) ?;
56- let class: Arc < Class > = object. class ( ) . clone ( ) ;
57- let method = class. try_get_method ( "run" , "()Ljava/lang/Object;" ) ?;
62+ let class_name = object. class ( ) . name ( ) . to_string ( ) ;
5863 thread
59- . execute ( & class, & method, & [ Value :: from ( object) ] )
64+ . invoke (
65+ & class_name,
66+ "run()Ljava/lang/Object;" ,
67+ & [ Value :: from ( object) ] ,
68+ )
6069 . await
6170}
6271
@@ -71,10 +80,13 @@ pub(crate) async fn do_privileged_4(
7180) -> Result < Option < Value > > {
7281 let _context = parameters. pop_object ( ) ?;
7382 let object = parameters. pop_object ( ) ?;
74- let class: Arc < Class > = object. class ( ) . clone ( ) ;
75- let method = class. try_get_method ( "run" , "()Ljava/lang/Object;" ) ?;
83+ let class_name = object. class ( ) . name ( ) . to_string ( ) ;
7684 thread
77- . execute ( & class, & method, & [ Value :: from ( object) ] )
85+ . invoke (
86+ & class_name,
87+ "run()Ljava/lang/Object;" ,
88+ & [ Value :: from ( object) ] ,
89+ )
7890 . await
7991}
8092
0 commit comments