@@ -425,16 +425,16 @@ gaia_ptr_t gaia_ptr_t::create(gaia_id_t id, gaia_type_t type, reference_offset_t
425425 ASSERT_INVARIANT (data_size == 0 , " Null payload with non-zero payload size!" );
426426 }
427427
428+ WRITE_PROTECT (obj.to_offset ());
429+ client_t::txn_log (locator, c_invalid_gaia_offset, obj.to_offset (), gaia_operation_t ::create);
430+
428431 auto_connect_to_parent (
429432 id,
430433 type,
431434 // NOLINTNEXTLINE: cppcoreguidelines-pro-type-const-cast
432435 const_cast <gaia_id_t *>(obj_ptr->references ()),
433436 reinterpret_cast <const uint8_t *>(obj_ptr->data ()));
434437
435- WRITE_PROTECT (locator_to_offset (locator));
436- client_t::txn_log (locator, c_invalid_gaia_offset, obj.to_offset (), gaia_operation_t ::create);
437-
438438 obj.create_insert_trigger (type, id);
439439 return obj;
440440}
@@ -600,6 +600,9 @@ gaia_ptr_t& gaia_ptr_t::update_payload(size_t data_size, const void* data)
600600 new_this->num_references = old_this->num_references ;
601601 memcpy (new_this->payload + references_size, data, data_size);
602602
603+ WRITE_PROTECT (to_offset ());
604+ client_t::txn_log (m_locator, old_offset, to_offset (), gaia_operation_t ::update);
605+
603606 auto new_data = reinterpret_cast <const uint8_t *>(data);
604607 auto old_data = reinterpret_cast <const uint8_t *>(old_this->payload );
605608 const uint8_t * old_data_payload = old_data + references_size;
@@ -613,10 +616,6 @@ gaia_ptr_t& gaia_ptr_t::update_payload(size_t data_size, const void* data)
613616 new_data,
614617 changed_fields);
615618
616- WRITE_PROTECT (to_offset ());
617-
618- client_t::txn_log (m_locator, old_offset, to_offset (), gaia_operation_t ::update);
619-
620619 if (client_t::is_valid_event (new_this->type ))
621620 {
622621 client_t ::s_events.emplace_back (event_type_t ::row_update, new_this->type , new_this->id , changed_fields, get_txn_id ());
0 commit comments