From 6331d2c288165a8e1d3b8cdbe6e2017e733fffc6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Fri, 21 Oct 2016 16:09:34 +0200
Subject: [PATCH] encode_value: Use MAPPING_FLAG_NO_SHRINK.

The mapping with encoded values is intentionally allocated with
medium sized hashtable. Shrinking it due to use of map_delete()
is just a waste of cpu.

Attempts to improve performance of encode_value() for objects,
programs and functions a bit more.
---
 src/encode.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/encode.c b/src/encode.c
index 294dab7cbe..508fa3cd9f 100644
--- a/src/encode.c
+++ b/src/encode.c
@@ -1883,6 +1883,7 @@ void f_encode_value(INT32 args)
   initialize_buf(&data->buf);
   data->canonic = 0;
   data->encoded=allocate_mapping(128);
+  data->encoded->data->flags |= MAPPING_FLAG_NO_SHRINK;
   data->delayed = allocate_array (0);
   SET_SVAL(data->counter, T_INT, NUMBER_NUMBER, integer, COUNTER_START);
 
-- 
GitLab