Skip to content

Commit 8fe04a3

Browse files
committed
Windows, compile : reenable previously disabled warning C4291
no matching operator delete found; memory will not be freed if initialization throws an exception Added a no-op delete() for MEM_ROOT based placement-new()
1 parent 282b652 commit 8fe04a3

File tree

9 files changed

+12
-5
lines changed

9 files changed

+12
-5
lines changed

cmake/os/Windows.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ IF(MSVC)
147147

148148
#TODO: update the code and remove the disabled warnings
149149
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /we4700 /we4311 /we4477 /we4302 /we4090")
150-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4291 /we4099 /we4700 /we4311 /we4477 /we4302 /we4090")
150+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /we4099 /we4700 /we4311 /we4477 /we4302 /we4090")
151151
ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_WARNINGS)
152152
IF(MYSQL_MAINTAINER_MODE MATCHES "ERR")
153153
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")

sql/sql_acl.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ class ACL_USER_BASE :public ACL_ACCESS
247247
public:
248248
static void *operator new(size_t size, MEM_ROOT *mem_root)
249249
{ return (void*) alloc_root(mem_root, size); }
250-
250+
static void operator delete(void *, MEM_ROOT *){}
251251
uchar flags; // field used to store various state information
252252
LEX_CSTRING user;
253253
/* list to hold references to granted roles (ACL_ROLE instances) */

sql/sql_alloc.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ class Sql_alloc
3737
}
3838
static void *operator new[](size_t size, MEM_ROOT *mem_root) throw ()
3939
{ return alloc_root(mem_root, size); }
40-
static void *operator new(size_t size, MEM_ROOT *mem_root) throw ()
40+
static void *operator new(size_t size, MEM_ROOT *mem_root)
4141
{ return alloc_root(mem_root, size); }
4242
static void operator delete(void *ptr, size_t size) { TRASH(ptr, size); }
43-
static void operator delete(void *ptr, MEM_ROOT *mem_root)
44-
{ /* never called */ }
43+
static void operator delete(void *, MEM_ROOT *){}
4544
static void operator delete[](void *ptr, MEM_ROOT *mem_root)
4645
{ /* never called */ }
4746
static void operator delete[](void *ptr, size_t size) { TRASH(ptr, size); }

sql/sql_cursor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ class Server_side_cursor: protected Query_arena, public Sql_alloc
6262
virtual ~Server_side_cursor();
6363

6464
static void operator delete(void *ptr, size_t size);
65+
static void operator delete(void *, MEM_ROOT *){}
6566
};
6667

6768

sql/sql_prepare.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ class Ed_result_set: public Sql_alloc
130130
size_t get_field_count() const { return m_column_count; }
131131

132132
static void operator delete(void *ptr, size_t size) throw ();
133+
static void operator delete(void *, MEM_ROOT *){}
133134
private:
134135
Ed_result_set(const Ed_result_set &); /* not implemented */
135136
Ed_result_set &operator=(Ed_result_set &); /* not implemented */

sql/sql_select.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13355,6 +13355,8 @@ class COND_CMP :public ilink {
1335513355
size_t size __attribute__((unused)))
1335613356
{ TRASH(ptr, size); }
1335713357

13358+
static void operator delete(void *, MEM_ROOT*) {}
13359+
1335813360
Item *and_level;
1335913361
Item_bool_func2 *cmp_func;
1336013362
COND_CMP(Item *a,Item_bool_func2 *b) :and_level(a),cmp_func(b) {}

sql/sql_select.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2115,6 +2115,7 @@ class Virtual_tmp_table: public TABLE
21152115
*/
21162116
static void *operator new(size_t size, THD *thd) throw();
21172117
static void operator delete(void *ptr, size_t size) { TRASH(ptr, size); }
2118+
static void operator delete(void *, THD *) throw(){}
21182119

21192120
Virtual_tmp_table(THD *thd)
21202121
{

sql/sql_show.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2699,6 +2699,7 @@ class thread_info :public ilink {
26992699
static void operator delete(void *ptr __attribute__((unused)),
27002700
size_t size __attribute__((unused)))
27012701
{ TRASH(ptr, size); }
2702+
static void operator delete(void *, MEM_ROOT *){}
27022703

27032704
my_thread_id thread_id;
27042705
uint32 os_thread_id;

storage/federatedx/ha_federatedx.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@ class federatedx_io
170170
{ return alloc_root(mem_root, size); }
171171
static void operator delete(void *ptr, size_t size)
172172
{ TRASH(ptr, size); }
173+
static void operator delete(void *, MEM_ROOT *)
174+
{ }
173175

174176
virtual int query(const char *buffer, size_t length)=0;
175177
virtual FEDERATEDX_IO_RESULT *store_result()=0;

0 commit comments

Comments
 (0)