Waitrud Weber’s blog

things and reminders for memories

3d: windows-make: Compilation with Keyword "new".

Typical pattern, we cannot allocate memories. as a typical pattern, we cannot allocate memories.

One of the answers is using "new".The thread doesn't wait for the next line as a process well even in for-loop.
--- Execution 001 starts. ----

Sun Aug 08 14:48:16 202 i 3 lines|00000000| i 3 lines_2D|00000000|ullptr=|00000000|.810090|.|0000001d|Sun Aug 08 14:48:16 202 We can't allcaote for lines memories. they are NULL after allocation loop.|0000001d|

--- Execution 001 ends. ----

 

int mDisplayControls_wmpaint_display_threeD_proc ( HWND hWnd, HDC hDC, PAINTSTRUCT* ps, UINT uMsg, WPARAM wParam, LPARAM lParam ) {
	err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: starts.\r\n");

	static int call_once_m = 0;
	int a = 0;
	float x1 = 0.0f, y1 = 0.0f, z1 = 0.0f;
	float x2 = 0.0f, y2 = 0.0f, z2 = 0.0f;

	if ( AXEX_2D_001 == NULL ) {
		err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: middle: 002-01\r\n");
		a = initialize_vAxex_2D_002 ();
		err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: middle: 002-02\r\n");
	}

	err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: middle: 002-03-01.\r\n");
	line_index = 12;
	err_msg_001("lines |%p| \r\n", lines );
	if ( call_once_m == 0 ) {
		err_msg_001 ("malloc: lines: |%p| |%p| ends.\r\n", lines, lines_2D );

		lines = (vLine**) realloc ( lines, sizeof (vLine*) * line_index );
		if ( lines == NULL ) {
			err_msg_001 ("lines_2D |%p| \r\n" , lines);
			exit(-1);
		}

		lines_2D = (vLine**) realloc ( lines_2D, sizeof (vLine*) * line_index );
		if ( lines_2D == NULL ) {
			err_msg_001 ("lines_2D |%p| \r\n" , lines_2D);
			exit(-1);
		}

		err_msg_001 ("malloc: lines: |%p| |%p| ends.\r\n", lines, lines_2D );
		for ( int i = 0; i<line_index; i++ ) {
			err_msg_001("i %d lines|%p| i %d lines_2D|%p| nullptr=|%p|\r\n", i, lines[i], i, lines_2D[i], nullptr);
			if ( lines[i] != nullptr ) {
				lines[i] = memorizevLine ( memorizevPoint( 0.0f, 0.0f, 0.0f ), memorizevPoint( 0.0f, 0.0f, 0.0f ) );
			}
			if ( lines_2D[i] != nullptr ) {
				lines_2D[i] = memorizevLine ( memorizevPoint( 0.0f, 0.0f, 0.0f ), memorizevPoint( 0.0f, 0.0f, 0.0f ) );
			}
			err_msg_001("i %d lines|%p| i %d lines_2D|%p|\r\n", i, lines[i], i, lines_2D[i]);
			if ( lines[i] == nullptr && lines_2D[i] == nullptr ) {
				err_msg_001("We can't allcaote for lines memories. they are NULL after allocation loop.\r\n" );
				exit(-1);
			}

			err_msg_001("i %d lines|%p| i %d lines_2D|%p|\r\n", i, lines[i], i, lines_2D[i]);
		}
		err_msg_001 ("malloc: lines: |%p| |%p| has finished. \r\n", lines, lines_2D );
		call_once_m = 1;
	}
	err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: middle: 002-03-02.\r\n");

	for ( int i = 3; i<line_index; i++ ) {

		err_msg_001("m-02-01: i %d line_index = %d lines[%d]=|%p|/ lines |%p| lines2D[%d] =|%p| / lines2D |%p| AXEX_2D_001[%d]=|%p|\r\n", i, line_index, i, lines[i], lines, i, lines_2D[i], lines_2D, (i - 1)  / 3, AXEX_2D_001[ (i - 1)  / 3 ] );
		// right arrow is different, we don't know that reason.
		x1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->x;
		y1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->y;
		z1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->z;
		err_msg_001("m-02-01-01: i %d line_index = %d lines[%d]=|%p|/ lines |%p| lines2D[%d] =|%p| / lines2D |%p|\r\n", i, line_index, i, lines[i], lines, i, lines_2D[i], lines_2D );
		x2 = x1 + AXEX_2D_001[ (i - 1)  / 3 ]->right->x * 30.0f;
		y2 = y1 + AXEX_2D_001[ (i - 1)  / 3 ]->right->y * 30.0f;
		z2 = z1 + AXEX_2D_001[ (i - 1)  / 3 ]->right->z * 30.0f ;
		err_msg_001("m-02-01-02: i %d line_index = %d lines[%d]=|%p|/ lines |%p| lines2D[%d] =|%p| / lines2D |%p|\r\n", i, line_index, i, lines[i], lines, i, lines_2D[i], lines_2D );
		lines[i]->setLine (  x1, y1, z1, x2, y2, z2 ) ;
		lines_2D[i]->setLine ( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f );
		err_msg_001("m-02-01-03: i %d line_index = %d lines[%d]=|%p|/ lines |%p| lines2D[%d] =|%p| / lines2D |%p|\r\n", i, line_index, i, lines[i], lines, i, lines_2D[i], lines_2D );
		i++;

		err_msg_001("m-02-02: i %d line_index = %d lines[%d]=|%p|/ lines |%p| lines2D[%d] =|%p| / lines2D |%p|\r\n", i, line_index, i, lines[i], lines, i, lines_2D[i], lines_2D );
		x1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->x;
		y1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->y;
		z1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->z;
		x2 = x1 + AXEX_2D_001[ (i - 1)  / 3 ]->up->x * 30.0f;
		y2 = y1 + AXEX_2D_001[ (i - 1)  / 3 ]->up->y * 30.0f;
		z2 = z1 + AXEX_2D_001[ (i - 1)  / 3 ]->up->z * 30.0f;
		lines[i]->setLine (  x1, y1, z1, x2, y2, z2 ) ;
		lines_2D[i]->setLine ( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f );
		err_msg_001("m-02-02: i %d line_index = %d lines[%d]=|%p|/ lines |%p| lines2D[%d] =|%p| / lines2D |%p|\r\n", i, line_index, i, lines[i], lines, i, lines_2D[i], lines_2D );
		i++;

		err_msg_001("m-02-03: i %d line_index = %d lines[%d]=|%p|/ lines |%p| lines2D[%d] =|%p| / lines2D |%p|\r\n", i, line_index, i, lines[i], lines, i, lines_2D[i], lines_2D );
		x1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->x;
		y1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->y;
		z1 = AXEX_2D_001[ (i - 1)  / 3 ]->center->z;
		x2 = x1 + AXEX_2D_001[ (i - 1)  / 3 ]->depth->x * 30.0f;
		y2 = y1 + AXEX_2D_001[ (i - 1)  / 3 ]->depth->y * 30.0f;
		z2 = z1 + AXEX_2D_001[ (i - 1)  / 3 ]->depth->z * 30.0f ;
		lines[i]->setLine (  x1, y1, z1, x2, y2, z2 ) ;
		lines_2D[i]->setLine ( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f );
		err_msg_001("m-02-03: i %d line_index = %d lines[%d]=|%p|/ lines |%p| lines2D[%d] =|%p| / lines2D |%p|\r\n", i, line_index, i, lines[i], lines, i, lines_2D[i], lines_2D );
	}

	printf("m-02: line_index = %d lines |%p| lines2D |%p|\r\n", line_index, lines, lines_2D );
	int b = convert_model_lines( lines, lines_2D, 3, line_index );
	printf("m-03: line_index = %d lines |%p| lines2D |%p|\r\n", line_index, lines, lines_2D );

	// Display axes from 4 to 15
	for ( int i = 3; i<line_index; i++ ) {
		GamePaint_011( hDC, lines_2D[i] );
	}

	err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: ends.\r\n");
}
correct: