diff options
author | monty@mysql.com <> | 2004-11-08 01:13:54 +0200 |
---|---|---|
committer | monty@mysql.com <> | 2004-11-08 01:13:54 +0200 |
commit | b903a129e26e217cf3c891a604ec1733df8fa9ff (patch) | |
tree | 7a3852793309c847d2ee83023b9429b28913b390 /sql/thr_malloc.cc | |
parent | e93450d4421c3794d569f529b1f123cd3ca2eaf7 (diff) | |
download | mariadb-git-b903a129e26e217cf3c891a604ec1733df8fa9ff.tar.gz |
Simpler arena swapping code
Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
This gives us the following benefits:
- Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
- Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
- We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
Diffstat (limited to 'sql/thr_malloc.cc')
-rw-r--r-- | sql/thr_malloc.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/thr_malloc.cc b/sql/thr_malloc.cc index 0df60858bcb..3a9ca397bba 100644 --- a/sql/thr_malloc.cc +++ b/sql/thr_malloc.cc @@ -38,7 +38,7 @@ void init_sql_alloc(MEM_ROOT *mem_root, uint block_size, uint pre_alloc) gptr sql_alloc(uint Size) { - MEM_ROOT *root=my_pthread_getspecific_ptr(MEM_ROOT*,THR_MALLOC); + MEM_ROOT *root= *my_pthread_getspecific_ptr(MEM_ROOT**,THR_MALLOC); char *ptr= (char*) alloc_root(root,Size); return ptr; } |