static void munger_test (handle_state h_s, offset_state offset_s, ptr_state ptr1_s, len_state len1_s, ptr_state ptr2_s, len_state len2_s) { Handle h; LONGINT offset; Ptr ptr1; LONGINT len1; Ptr ptr2; LONGINT len2; LONGINT retval; LONGINT d0; h = new_handle (h_s); offset = new_offset (offset_s, GetHandleSize (h)); ptr1 = new_ptr (ptr1_s); len1 = new_len (len1_s); ptr2 = new_ptr (ptr2_s); len2 = new_len (len2_s); dump_handle (h); retval = Munger_invoker (h, offset, ptr1, len1, ptr2, len2, &d0); dump_handle (h); dump_retval_d0 (retval, d0); if (h_s >= handle_nil_master) DisposeHandle (h); }
MP MP::new_file( QString name, MP model ) { MP res = new_obj( "File" ); res[ "name" ] = name; res[ "_ptr" ] = new_ptr( model ); res[ "_info" ] = new_obj(); return res; }
ModelPointer ModelPointer::new_file( QString name, ModelPointer model ) { ModelPointer res = new_obj( "File" ); res[ "name" ] = name; res[ "_ptr" ] = new_ptr( model ); res[ "_info" ] = new_obj(); return res; }
void TestPtr() { bool b = false; // конструкторы { Ptr<set_bool> ptr1; Ptr<set_bool> ptr2((set_bool*)0); Ptr<set_bool> ptr3(new set_bool(b)); BOOST_CHECK( b ); } BOOST_CHECK( !b ); // get(), operator = { Ptr<set_bool> ptr; BOOST_CHECK( !ptr.get() ); set_bool* p_sb = new set_bool(b); ptr = p_sb; BOOST_CHECK( ptr.get() == p_sb ); BOOST_CHECK( b ); Ptr<set_bool> new_ptr(ptr); BOOST_CHECK( new_ptr.get() == p_sb ); BOOST_CHECK( b ); } BOOST_CHECK( !b ); // reset() { Ptr<set_bool> ptr(new set_bool(b)); ptr.reset((set_bool*)0); BOOST_CHECK( !b ); ptr.reset( new set_bool(b) ); BOOST_CHECK( b ); } // if( ptr ) // operator * { Ptr<int> ptr; if( ptr ) BOOST_CHECK( false ); int* p_int = new int(5); ptr = p_int; if( ptr ) BOOST_CHECK( true ); BOOST_CHECK( 5 == *ptr ); } // operator -> { typedef std::pair<int, int> iint; Ptr<iint> pair_ptr(new iint(1,2)); BOOST_CHECK( pair_ptr->first == 1 ); BOOST_CHECK( pair_ptr->second == 2 ); } }
void reset( Object* t = nullptr ) { rc_ptr new_ptr( t ); swap( new_ptr ); }