gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash libbase/jemalloc.c libbase/memory.cpp con...


From: Rob Savoye
Subject: [Gnash-commit] gnash libbase/jemalloc.c libbase/memory.cpp con...
Date: Wed, 30 Apr 2008 18:02:06 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    08/04/30 18:02:06

Modified files:
        libbase        : jemalloc.c memory.cpp 
        .              : configure.ac ChangeLog 

Log message:
                * configure.ac: Always look for mallinfo(), jemalloc now 
supports it.
                * libbase/jemalloc.c: Add support for mallinfo.
                * libbase/memory.cpp: Take a sample when starting.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/jemalloc.c?cvsroot=gnash&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/memory.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/configure.ac?cvsroot=gnash&r1=1.526&r2=1.527
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6467&r2=1.6468

Patches:
Index: libbase/jemalloc.c
===================================================================
RCS file: /sources/gnash/gnash/libbase/jemalloc.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libbase/jemalloc.c  29 Apr 2008 16:53:15 -0000      1.2
+++ libbase/jemalloc.c  30 Apr 2008 18:02:05 -0000      1.3
@@ -5840,6 +5840,55 @@
 }
 
 /*
+ * This is a work in progress, which doesn't even get used.
+ */
+#ifdef USE_STATS_MEMORY
+/* Utility to update mallinfo for malloc_stats() and mallinfo() */
+
+static void
+malloc_update_mallinfo(arena_t *arena, struct mallinfo *mi)
+{
+  int i, navail;
+  size_t avail;
+  avail = chunksize * narenas;
+
+#if 0
+  malloc_printf("allocated:   %u %u %u\n",
+                arena->stats.allocated_small + arena->stats.allocated_large,
+                arena->stats.nmalloc_small + arena->stats.nmalloc_large,
+                arena->stats.ndalloc_small + arena->stats.ndalloc_large);
+  
+  malloc_printf("available:   %u\n", avail);
+#endif
+  
+/*   stats_print(arena); */
+  malloc_spin_lock(&arena->lock);
+
+  /* clear unused fields */
+  mi->arena = mi->ordblks = mi->smblks = mi->usmblks = mi->fsmblks = 0;
+  mi->uordblks = arena->stats.allocated_small + arena->stats.allocated_large;
+  mi->fordblks = arena->stats.mapped - mi->uordblks;
+  
+  mi->hblks = mi->hblkhd = 0;
+  mi->keepcost = arena->stats.mapped;
+  malloc_spin_unlock(&arena->lock);
+}
+
+#ifndef DARWIN
+DSOEXPORT
+struct mallinfo
+mallinfo()
+{
+    struct mallinfo mi;
+
+    /* Calculate and print allocated/mapped stats. */
+    malloc_update_mallinfo(choose_arena(), &mi);
+    return mi;
+}
+# endif
+#endif
+
+/*
  * End malloc(3)-compatible functions.
  */
 
/******************************************************************************/

Index: libbase/memory.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/memory.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libbase/memory.cpp  11 Apr 2008 19:02:33 -0000      1.6
+++ libbase/memory.cpp  30 Apr 2008 18:02:05 -0000      1.7
@@ -92,6 +92,7 @@
         log_debug("Allocating buffer for %d data samples", _size);
         _info = new struct small_mallinfo[_size];
         reset();
+       addStats();
     }
 }
     
@@ -306,7 +307,7 @@
                  ? "passed" : "failed") << endl;
         }
     }
-    return true; /* The funcion maybe should be declared as void? */
+    return true;
 }
     
 

Index: configure.ac
===================================================================
RCS file: /sources/gnash/gnash/configure.ac,v
retrieving revision 1.526
retrieving revision 1.527
diff -u -b -r1.526 -r1.527
--- configure.ac        30 Apr 2008 16:06:33 -0000      1.526
+++ configure.ac        30 Apr 2008 18:02:05 -0000      1.527
@@ -288,14 +288,13 @@
   else
     jemalloc=no
   fi
-else
-  AC_TRY_COMPILE([#include <malloc.h>], [
+fi
+AC_TRY_COMPILE([#include <malloc.h>], [
     struct mallinfo x = mallinfo(); ],
     mallinfo=yes, mallinfo=no
-  )
-  if test x"${mallinfo}" = x"yes"; then
+)
+if test x"${mallinfo}" = x"yes"; then
     AC_DEFINE(HAVE_MALLINFO, [1], [Has mallinfo()])
-  fi
 fi
 AM_CONDITIONAL(JEMALLOC, test x$jemalloc = xyes)
 AM_CONDITIONAL(HAVE_MALLINFO, [test x$mallinfo = xyes])

Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6467
retrieving revision 1.6468
diff -u -b -r1.6467 -r1.6468
--- ChangeLog   30 Apr 2008 16:16:41 -0000      1.6467
+++ ChangeLog   30 Apr 2008 18:02:05 -0000      1.6468
@@ -1,3 +1,9 @@
+2008-04-30  Rob Savoye  <address@hidden>
+
+       * configure.ac: Always look for mallinfo(), jemalloc now supports it.
+       * libbase/jemalloc.c: Add support for mallinfo.
+       * libbase/memory.cpp: Take a sample when starting.
+
 2008-04-30 Sandro Santilli <address@hidden>
 
        * server/character.cpp (alpha_getset): undefined, null and nan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]