(20200218) Reuse memories if we don't make them free. https://github.com/WaitrudWeber/source_zip/blob/master/analyzer_20200215-001.zip https://github.com/WaitrudWeber/source_zip/blob/master/analyzer_20200216-001.zip
--- // Recreated: 20200218 // // // // vPoint* memorizevPoint( float a, float b, float c ) { if ( dummy_vPoint_index < dummy_vPoint_max ) { if ( dummy_vPoint[dummy_vPoint_index] != nullptr ) { dummy_vPoint_index++; if ( dummy_vPoint_index >= dummy_vPoint_max - 1 ) { dummy_vPoint_max = dummy_vPoint_max * 2; dummy_vPoint = (vPoint**) realloc ( dummy_vPoint, sizeof(vPoint*) * dummy_vPoint_max ); } printf("aReuse: %d/%d\r\n", dummy_vPoint_index, dummy_vPoint_max); exit(-1); return dummy_vPoint[dummy_vPoint_index - 1]; } } dummy_p = new vPoint ( a, b, c ); put_memories( dummy_p ) ; return dummy_p; } --- void wButtonController::drawButtons ( HDC hdc ): Starts AryButton 0 = 0 AryButton 1 = 0 AryButton 2 = 1 AryButton 3 = 0 AryButton 4 = 0 AryButton 5 = 0 AryButton 6 = 0 AryButton 7 = 0 AryButton 8 = 0 void wButtonController::drawButtons ( HDC hdc ): Ends wmpaint_display_threeD_proc_002: memorized_CurveLines=0 memorized_CurveLines=0 WM_MESSG 004: 15 *(p_evt->uMsg):2000657448 uMsg:15 p_evt->uMsg: 2685472 &uMsg: 2686020 WM_PAINT 005: 15 *(p_evt->uMsg):2000657448 uMsg: 15 WM_PAINT 006: 15 *(p_evt->uMsg):2000657448 uMsg: 15 WM_MESSG 000: hWnd 394130: uMsg 257: wParam 13: lParam -1071906815: canvas 4366736: btc 4366752: *(p_evt->uMsg) 257: WM_MESSG 003: 257 *(p_evt->uMsg):257 wButtonController::Process: 257 / 15<-WM_PAINT wParam 13 lParam -1071906815 this->event->uMsg:2686208 *(this->event->uMs g)=257 wButtonController::ProcessWmKeyup: Starts:wButtonController::initialize 2 display_threeD_screen_initialize_002 starts this->eye= p( 500.000000, 500.000000, -500.000000) lookat= p( 0.000000, 0.000000, 0.000000) n_howfar= p( -0.577350, -0.577350, 0.577350) howfar= p( -184.752075, -184.752075, 184.752075) up= p( 0.000000, 1.000000, 0.000000) u= p( 0.707107, -0.000000, 0.707107) U= p( 452.548340, -0.000000, 452.548340) V= p( -195.959167, 391.918335, 195.959167) this->C= p( 186.953339, 119.288757, -639.501709) starts curve_initialization() STARTS CurveLines->FirstCreation() ac: 1: p( 140.000000, 100.000000, 300.000000) ac normal 1.0: 1: p( 0.404820, 0.289157, 0.867472) ac scale absolute 0.0f: 1 p( 16.192818, 11.566299, 34.698898) 1 C1 p( 3.807182, 38.433701, 165.301102) 1 C2 p( 36.192818, 61.566299, 234.698898) ac: 2: p( 20.000000, 100.000000, 400.000000) ac normal 1.0: 2: p( 0.048450, 0.242251, 0.969003) ac scale absolute 0.0f: 2 p( 1.938006, 9.690031, 38.760124) aReuse: 35/64 --- // Recreated: 20200218 // // // // vPoint* memorizevPoint( float a, float b, float c ) { if ( dummy_vPoint_index < dummy_vPoint_max ) { if ( dummy_vPoint[dummy_vPoint_index] != nullptr ) { dummy_vPoint_index++; if ( dummy_vPoint_index >= dummy_vPoint_max - 1 ) { dummy_vPoint_max = dummy_vPoint_max * 2; dummy_vPoint = (vPoint**) realloc ( dummy_vPoint, sizeof(vPoint*) * dummy_vPoint_max ); } printf("Reuse: %d/%d\r\n", dummy_vPoint_index, dummy_vPoint_max); exit(-1); return dummy_vPoint[dummy_vPoint_index - 1]; } } dummy_p = new vPoint ( a, b, c ); put_memories( dummy_p ) ; return dummy_p; } --- void wButtonController::drawButtons ( HDC hdc ): Starts AryButton 0 = 0 AryButton 1 = 0 AryButton 2 = 1 AryButton 3 = 0 AryButton 4 = 0 AryButton 5 = 0 AryButton 6 = 0 AryButton 7 = 0 AryButton 8 = 0 void wButtonController::drawButtons ( HDC hdc ): Ends wmpaint_display_threeD_proc_002: memorized_CurveLines=0 memorized_CurveLines=0 WM_MESSG 004: 15 *(p_evt->uMsg):2000657448 uMsg:15 p_evt->uMsg: 2685472 &uMsg: 2686020 WM_PAINT 005: 15 *(p_evt->uMsg):2000657448 uMsg: 15 WM_PAINT 006: 15 *(p_evt->uMsg):2000657448 uMsg: 15 WM_MESSG 000: hWnd 590876: uMsg 257: wParam 13: lParam -1071906815: canvas 4366736: btc 4366752: *(p_evt->uMsg) 257: WM_MESSG 003: 257 *(p_evt->uMsg):257 wButtonController::Process: 257 / 15<-WM_PAINT wParam 13 lParam -1071906815 this->event->uMsg:2686208 *(this->event->uMs g)=257 wButtonController::ProcessWmKeyup: Starts:wButtonController::initialize 2 display_threeD_screen_initialize_002 starts this->eye= p( 500.000000, 500.000000, -500.000000) lookat= p( 0.000000, 0.000000, 0.000000) n_howfar= p( -0.577350, -0.577350, 0.577350) howfar= p( -184.752075, -184.752075, 184.752075) up= p( 0.000000, 1.000000, 0.000000) u= p( 0.707107, -0.000000, 0.707107) U= p( 452.548340, -0.000000, 452.548340) V= p( -195.959167, 391.918335, 195.959167) this->C= p( 186.953339, 119.288757, -639.501709) Reuse: 7/16 ---
--- memorization: we don't free, however, there was possibilities of that if we free them anywhere. ---
(20200224) Memorization problem: We put print: obviously, we could understand. --- Put print: wButtonController::Process: 257 / 15<-WM_PAINT wParam 13 lParam -1071906815 this->event->uMsg:2686208 *(this->event->uMs g)=257 wButtonController::ProcessWmKeyup: Starts:wButtonController::initialize 2 display_threeD_screen_initialize_002 starts this->eye= p( 500.000000, 500.000000, -500.000000) lookat= p( 0.000000, 0.000000, 0.000000) n_howfar= p( -0.577350, -0.577350, 0.577350) howfar= p( -184.752075, -184.752075, 184.752075) vPoint vCalculation::add: starts. |0028FAB0| |0028FABC| vPoint vCalculation::add: returns |037B3420|. up= p( 0.000000, 1.000000, 0.000000) u= p( 0.707107, -0.000000, 0.707107) U= p( 452.548340, -0.000000, 452.548340) V= p( -195.959167, 391.918335, 195.959167) vPoint vCalculation::add: starts. |0028FAB0| |0028FABC| aReuse: 3/8 vPoint vCalculation::add: returns |037B36D8|. vPoint vCalculation::add: starts. |0028FAB0| |0028FABC| vPoint vCalculation::add: returns |037B33C0|. this->C= p( 186.953339, 119.288757, -639.501709) vPoint vCalculation::add: starts. |0028FAB0| |0028FABC| vPoint vCalculation::add: returns |037B3588|. vPoint vCalculation::add: starts. |0028FAB0| |0028FABC| vPoint vCalculation::add: returns |037B3558|. calculation_up_UV: starts aReuse: 7/16 --- // // // // // vPoint* vCalculation::scale ( vPoint* p1, float w_scale, vPoint* result ) { printf("vPoint* vCalculation::scale |%p| |%f| |%p|\r\n", p1, w_scale, result); scale ( p1->x, p1->y, p1->z, w_scale, &(result->x), &(result->y), &(result->z) ); put_memories ( result ); printf("vPoint* vCalculation::scale |%p|", result); return result; } --- // // // // // void vCalculation::add ( vPoint p1, vPoint p2, vPoint* p3 ) { printf("vPoint vCalculation::add: starts. |%p| |%p| |%p|\r\n", &p1, &p2, p3); add( p1.x, p1.y, p1.z, p2.x, p2.y, p2.z, &(p3->x), &(p3->y), &(p3->z) ); printf("vPoint vCalculation::add: sets |%p|.\r\n", p3); } --- // // // // // vPoint vCalculation::add ( vPoint p1, vPoint p2) { printf("vPoint vCalculation::add: starts. |%p| |%p|\r\n", &p1, &p2); vPoint* result = memorizevPoint( 0.0f, 0.0f, 0.0f); add( p1.x, p1.y, p1.z, p2.x, p2.y, p2.z, &(result->x), &(result->y), &(result->z) ); printf("vPoint vCalculation::add: returns |%p|.\r\n", result); return *result; } ---