Browse Source

:recycle: Small optimizations

Danilo Guanabara 2 months ago
parent
commit
77c3cf8f2e
1 changed files with 3 additions and 2 deletions
  1. 3 2
      crates/programs/world/src/lib.rs

+ 3 - 2
crates/programs/world/src/lib.rs

@@ -402,7 +402,7 @@ fn apply_impl<'info>(
         return Err(WorldError::SystemNotApproved.into());
         return Err(WorldError::SystemNotApproved.into());
     }
     }
 
 
-    let mut pairs = Vec::new();
+    let mut pairs = Vec::with_capacity(remaining_accounts.len() / 2);
     while remaining_accounts.len() >= 2 {
     while remaining_accounts.len() >= 2 {
         let program = remaining_accounts.remove(0);
         let program = remaining_accounts.remove(0);
         if program.key() == ID {
         if program.key() == ID {
@@ -425,9 +425,10 @@ fn apply_impl<'info>(
         key_bytes.copy_from_slice(&data_ref[start..start+32]);
         key_bytes.copy_from_slice(&data_ref[start..start+32]);
         let component_authority = Pubkey::new_from_array(key_bytes);
         let component_authority = Pubkey::new_from_array(key_bytes);
 
 
+        let unix_timestamp = Clock::get()?.unix_timestamp;
         if let Some(session_token) = session_token {
         if let Some(session_token) = session_token {
             if component_authority == ID {
             if component_authority == ID {
-                require!(Clock::get()?.unix_timestamp < session_token.valid_until, session_keys::SessionError::InvalidToken);
+                require!(unix_timestamp < session_token.valid_until, session_keys::SessionError::InvalidToken);
             } else {
             } else {
                 let validity_ctx = session_keys::ValidityChecker {
                 let validity_ctx = session_keys::ValidityChecker {
                     session_token: session_token.clone(),
                     session_token: session_token.clone(),