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
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to