summaryrefslogtreecommitdiff
path: root/modules/benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'modules/benchmark')
-rw-r--r--modules/benchmark/bench_results.c6
-rw-r--r--modules/benchmark/guibench.c4
-rw-r--r--modules/benchmark/nqueens.c20
3 files changed, 16 insertions, 14 deletions
diff --git a/modules/benchmark/bench_results.c b/modules/benchmark/bench_results.c
index 18ed0739..e0557fc2 100644
--- a/modules/benchmark/bench_results.c
+++ b/modules/benchmark/bench_results.c
@@ -354,8 +354,10 @@ static void append_cpu_config(JsonObject *object,
static gchar *get_cpu_config(JsonObject *machine)
{
- JsonObject *cpu_config_map =
- json_object_get_object_member(machine, "CpuConfigMap");
+ JsonObject *cpu_config_map=NULL;
+
+ if(json_object_has_member(machine, "CpuConfigMap"))
+ cpu_config_map=json_object_get_object_member(machine, "CpuConfigMap");
if (!cpu_config_map)
return json_get_string_dup(machine, "CpuConfig");
diff --git a/modules/benchmark/guibench.c b/modules/benchmark/guibench.c
index 2b4f3b11..e0f8351e 100644
--- a/modules/benchmark/guibench.c
+++ b/modules/benchmark/guibench.c
@@ -68,7 +68,7 @@ static gchar *phrase = NULL;
static gboolean keypress_event(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
{
const int magic[] = { 0x1b, 0x33, 0x3a, 0x35, 0x51 };
- const int states[] = { 0xff52, 0xff52, 0xff54, 0xff54,
+ const unsigned int states[] = { 0xff52, 0xff52, 0xff54, 0xff54,
0xff51, 0xff53, 0xff51, 0xff53,
0x62, 0x61 };
static int state = 0;
@@ -80,7 +80,7 @@ static gboolean keypress_event(GtkWidget *widget, GdkEventKey *event, gpointer u
}
if (state == G_N_ELEMENTS(states)) {
- int i;
+ unsigned int i;
for (i = 0; i < G_N_ELEMENTS(magic); i++) {
phrase[i + 6] = magic[i] ^ (states[i] & (states[i] >> 8));
diff --git a/modules/benchmark/nqueens.c b/modules/benchmark/nqueens.c
index 6aad7638..bda9f884 100644
--- a/modules/benchmark/nqueens.c
+++ b/modules/benchmark/nqueens.c
@@ -10,13 +10,12 @@
#include "benchmark.h"
/* if anything changes in this block, increment revision */
-#define BENCH_REVISION 2
-#define QUEENS 6
+#define BENCH_REVISION 3
+#define QUEENS 9
#define CRUNCH_TIME 5
-int row[QUEENS];
-bool safe(int x, int y) {
+bool safe(int x, int y,int *row) {
int i;
for (i = 1; i <= y; i++)
if (row[y - i] == x || row[y - i] == x - i || row[y - i] == x + i)
@@ -24,13 +23,13 @@ bool safe(int x, int y) {
return true;
}
-int nqueens(int y) {
+int nqueens(int y,int *row) {
int x;
for (x = 0; x < QUEENS; x++) {
- if (safe((row[y - 1] = x), y - 1)) {
- if (y < QUEENS) {
- nqueens(y + 1);
+ if (safe((row[y - 1] = x), y - 1, row)) {
+ if (y <= QUEENS) {
+ nqueens(y + 1, row);
} else {
break;
}
@@ -42,7 +41,8 @@ int nqueens(int y) {
static gpointer nqueens_for(void *data, gint thread_number)
{
- nqueens(0);
+ int row[QUEENS+1];
+ nqueens(1,row);
return NULL;
}
@@ -58,7 +58,7 @@ benchmark_nqueens(void)
r = benchmark_crunch_for(CRUNCH_TIME, 0, nqueens_for, NULL);
r.revision = BENCH_REVISION;
- snprintf(r.extra, 255, "q:%d", QUEENS);
+ snprintf(r.extra, 255, "q:%d", QUEENS-1);
r.result /= 25;