@@ -30,26 +30,14 @@ fd_txn_account_new( void *              mem,
3030
3131  fd_memcpy ( txn_account -> pubkey , pubkey , sizeof (fd_pubkey_t ) );
3232
33-   fd_wksp_t  *  wksp  =  fd_wksp_containing ( meta  );
34- 
3533  txn_account -> magic              =  FD_TXN_ACCOUNT_MAGIC ;
3634
3735  txn_account -> starting_dlen      =  meta -> dlen ;
3836  txn_account -> starting_lamports  =  meta -> lamports ;
3937
4038  uchar  *  data  =  (uchar  * )meta  +  sizeof (fd_account_meta_t );
4139
42-   txn_account -> meta_gaddr  =  fd_wksp_gaddr ( wksp , meta  );
43-   if ( FD_UNLIKELY ( !txn_account -> meta_gaddr  ) ) {
44-     FD_LOG_WARNING (( "meta_gaddr is 0"  ));
45-     return  NULL ;
46-   }
47- 
48-   txn_account -> data_gaddr  =  fd_wksp_gaddr ( wksp , data  );
49-   if ( FD_UNLIKELY ( !txn_account -> data_gaddr  ) ) {
50-     FD_LOG_WARNING (( "data_gaddr is 0"  ));
51-     return  NULL ;
52-   }
40+   txn_account -> meta_soff  =  (long )( (ulong )meta  -  (ulong )mem  );
5341
5442  txn_account -> meta        =  meta ;
5543  txn_account -> data        =  data ;
@@ -82,22 +70,12 @@ fd_txn_account_join( void * mem, fd_wksp_t * data_wksp ) {
8270    return  NULL ;
8371  }
8472
85-   if ( FD_UNLIKELY ( txn_account -> meta_gaddr == 0UL  ) ) {
86-     FD_LOG_WARNING (( "`meta gaddr is 0"  ));
87-     return  NULL ;
88-   }
89- 
90-   txn_account -> meta  =  fd_wksp_laddr ( data_wksp , txn_account -> meta_gaddr  );
91-   if ( FD_UNLIKELY ( !txn_account -> meta  ) ) {
92-     FD_LOG_WARNING (( "meta is NULL"  ));
93-     return  NULL ;
73+   if ( FD_UNLIKELY ( txn_account -> meta_soff == 0UL  ) ) {
74+     FD_LOG_CRIT (( "invalid meta_soff"  ));
9475  }
9576
96-   txn_account -> data  =  fd_wksp_laddr ( data_wksp , txn_account -> data_gaddr  );
97-   if ( FD_UNLIKELY ( !txn_account -> data  &&  txn_account -> meta -> dlen  ) ) {
98-     FD_LOG_WARNING (( "data is NULL"  ));
99-     return  NULL ;
100-   }
77+   txn_account -> meta  =  (void  * )( (ulong )mem  +  (ulong )txn_account -> meta_soff  );
78+   txn_account -> data  =  (void  * )( (ulong )txn_account -> meta  +  sizeof (fd_account_meta_t ) );
10179
10280  return  txn_account ;
10381}
0 commit comments