Enlightenment CVS committal
Author : kwo
Project : e16
Module : epplets
Dir : e16/epplets/epplets
Modified Files:
E-Cpu.c E-NetFlame.c
Log Message:
Fix use of uninitialized data and incorrect indexing.
This fixes broken rendering in certain situations.
===================================================================
RCS file: /cvs/e/e16/epplets/epplets/E-Cpu.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- E-Cpu.c 15 Apr 2006 22:04:47 -0000 1.23
+++ E-Cpu.c 28 Sep 2006 21:03:04 -0000 1.24
@@ -184,6 +184,7 @@
flame[(y * 40) + 39] = 0;
for (y = 0; y < 40; y++)
flame[(y * 40) + 38] /= 2;
+
rgb = Epplet_get_rgb_pointer(buf);
for (y = 0; y < 40; y++)
{
@@ -450,9 +451,9 @@
atexit(Epplet_cleanup);
cpus = count_cpus();
- load_val = malloc(sizeof(int) * cpus);
- prev_val = malloc(sizeof(double) * cpus);
- prev_val_nice = malloc(sizeof(double) * cpus);
+ load_val = calloc(cpus, sizeof(int));
+ prev_val = calloc(cpus, sizeof(double));
+ prev_val_nice = calloc(cpus, sizeof(double));
Epplet_Init("E-Cpu", "0.1", "Enlightenment CPU Epplet", 3, 3, argc, argv,
0);
Epplet_load_config();
===================================================================
RCS file: /cvs/e/e16/epplets/epplets/E-NetFlame.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- E-NetFlame.c 15 Apr 2006 22:04:47 -0000 1.13
+++ E-NetFlame.c 28 Sep 2006 21:03:04 -0000 1.14
@@ -134,11 +134,10 @@
/* initialize the flame if it isn't done already */
if (!flame)
{
- vspread = malloc(40 * sizeof(int));
- hspread = malloc(40 * sizeof(int));
- residual = malloc(40 * sizeof(int));
- flame = malloc(sizeof(int) * WIDTH * HEIGHT);
- memset(flame, 0, sizeof(int) * WIDTH * HEIGHT);
+ vspread = malloc(WIDTH * sizeof(int));
+ hspread = malloc(WIDTH * sizeof(int));
+ residual = malloc(WIDTH * sizeof(int));
+ flame = calloc(WIDTH * HEIGHT, sizeof(int));
}
/* move to the bottom left of the drawing area */
ptr = flame + ((HEIGHT - 1) * WIDTH);
@@ -147,12 +146,12 @@
{
/* adjust spreads and residual values to reflect the
* load values... */
- vspread[x] = VSPREAD + (load_val[(x * DIVISIONS) / HEIGHT] / 50);
+ vspread[x] = VSPREAD + (load_val[(x * DIVISIONS) / WIDTH] / 50);
hspread[x] = HSPREAD + (load_val[(x * DIVISIONS) / WIDTH] / 50);
- residual[x] = RESIDUAL + (load_val[(x * DIVISIONS) / HEIGHT] / 50);
+ residual[x] = RESIDUAL + (load_val[(x * DIVISIONS) / WIDTH] / 50);
/* assign a random value to the pixel according to the
* load ... gives randomness to flames */
- ptr[x] = (rand() % ((load_val[(x * DIVISIONS) / 40]) + 155));
+ ptr[x] = (rand() % ((load_val[(x * DIVISIONS) / WIDTH]) + 155));
/* bounds checking */
if (ptr[x] > MAX)
{
@@ -238,7 +237,7 @@
rgb = Epplet_get_rgb_pointer(buf);
for (y = 0; y < HEIGHT; y++)
{
- ptr = flame + (y * WIDTH) + 1;
+ ptr = flame + (y * WIDTH);
rptr = rgb + (y * WIDTH * 4);
for (x = 0; x < WIDTH; x++)
{
@@ -428,8 +427,8 @@
setpriority(PRIO_PROCESS, getpid(), prio + 10);
atexit(Epplet_cleanup);
- load_val = malloc(sizeof(int) * DIVISIONS);
- prev_val = malloc(sizeof(double) * DIVISIONS);
+ load_val = calloc(DIVISIONS, sizeof(int));
+ prev_val = calloc(DIVISIONS, sizeof(double));
Epplet_Init("E-NetFlame", "0.3", "E Net-Flame Epplet", 3, 3, argc, argv, 0);
Epplet_load_config();
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs