Author: Nicolas Truessel <[email protected]>
Branch: quad-color-gc
Changeset: r91179:4cee2f816dc0
Date: 2017-05-04 22:27 +0200
http://bitbucket.org/pypy/pypy/changeset/4cee2f816dc0/

Log:    Update qcgc source files

diff --git a/rpython/translator/c/src/qcgc/qcgc.c 
b/rpython/translator/c/src/qcgc/qcgc.c
--- a/rpython/translator/c/src/qcgc/qcgc.c
+++ b/rpython/translator/c/src/qcgc/qcgc.c
@@ -40,6 +40,10 @@
        qcgc_hbtable_initialize();
        qcgc_event_logger_initialize();
 
+#if LOG_ALLOCATOR_SWITCH
+       qcgc_allocations = 0;
+#endif
+
        env_or_fallback(qcgc_state.incmark_threshold,
                        "QCGC_INCMARK", QCGC_INCMARK_THRESHOLD);
        env_or_fallback(qcgc_state.incmark_to_sweep,
@@ -49,6 +53,18 @@
 }
 
 void qcgc_destroy(void) {
+#if LOG_ALLOCATOR_SWITCH
+       struct log_info_s {
+               bool bump_allocator;
+               size_t allocations;
+       };
+       struct log_info_s log_info = {
+               _qcgc_bump_allocator.ptr != NULL,
+               qcgc_allocations,
+       };
+       qcgc_event_logger_log(EVENT_ALLOCATOR_SWITCH, sizeof(struct log_info_s),
+                       (uint8_t *) &log_info);
+#endif
        qcgc_event_logger_destroy();
        qcgc_hbtable_destroy();
        qcgc_allocator_destroy();
@@ -131,12 +147,12 @@
                        if ((_qcgc_bump_allocator.ptr == NULL) != 
old_use_fit_allocator) {
                                // Allocator switched
                                struct log_info_s {
+                                       bool bump_allocator;
                                        size_t allocations;
-                                       bool fit_allocator;
                                };
                                struct log_info_s log_info = {
+                                       _qcgc_bump_allocator.ptr != NULL,
                                        qcgc_allocations,
-                                       _qcgc_bump_allocator.ptr == NULL,
                                };
                                qcgc_event_logger_log(EVENT_ALLOCATOR_SWITCH, 
sizeof(struct log_info_s),
                                                (uint8_t *) &log_info);
@@ -154,12 +170,12 @@
                if ((_qcgc_bump_allocator.ptr == NULL) != 
old_use_fit_allocator) {
                        // Allocator switched
                        struct log_info_s {
+                               bool bump_allocator;
                                size_t allocations;
-                               bool fit_allocator;
                        };
                        struct log_info_s log_info = {
+                               _qcgc_bump_allocator.ptr != NULL,
                                qcgc_allocations,
-                               _qcgc_bump_allocator.ptr == NULL,
                        };
                        qcgc_event_logger_log(EVENT_ALLOCATOR_SWITCH, 
sizeof(struct log_info_s),
                                        (uint8_t *) &log_info);
@@ -188,12 +204,12 @@
        if ((_qcgc_bump_allocator.ptr == NULL) != old_use_fit_allocator) {
                // Allocator switched
                struct log_info_s {
+                       bool bump_allocator;
                        size_t allocations;
-                       bool fit_allocator;
                };
                struct log_info_s log_info = {
+                       _qcgc_bump_allocator.ptr != NULL,
                        qcgc_allocations,
-                       _qcgc_bump_allocator.ptr == NULL,
                };
                qcgc_event_logger_log(EVENT_ALLOCATOR_SWITCH, sizeof(struct 
log_info_s),
                                (uint8_t *) &log_info);
diff --git a/rpython/translator/c/src/qcgc/qcgc.h 
b/rpython/translator/c/src/qcgc/qcgc.h
--- a/rpython/translator/c/src/qcgc/qcgc.h
+++ b/rpython/translator/c/src/qcgc/qcgc.h
@@ -60,7 +60,7 @@
 } object_stack_t;
 
 #if LOG_ALLOCATOR_SWITCH
-size_t qcgc_allocations = 0;
+size_t qcgc_allocations;
 #endif
 
 /**
@@ -289,6 +289,6 @@
  * @param      object  The object to trace
  * @param      visit   The function to be called on the referenced objects
  */
-void qcgc_trace_cb(object_t *object, void (*visit)(object_t *object));
+extern void qcgc_trace_cb(object_t *object, void (*visit)(object_t *object));
 
 #endif
diff --git a/rpython/translator/c/src/qcgc/src/collector.c 
b/rpython/translator/c/src/qcgc/src/collector.c
--- a/rpython/translator/c/src/qcgc/src/collector.c
+++ b/rpython/translator/c/src/qcgc/src/collector.c
@@ -155,7 +155,7 @@
        qcgc_trace_cb(object, &qcgc_push_object);
 }
 
-QCGC_STATIC QCGC_INLINE void qcgc_push_object(object_t *object) {
+QCGC_STATIC void qcgc_push_object(object_t *object) {
 #if CHECKED
        assert(qcgc_state.phase == GC_MARK);
 #endif
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to