Skip to content

Commit 6797be7

Browse files
committed
Define handlers with std::array
1 parent 05967c0 commit 6797be7

10 files changed

+10
-28
lines changed

atom/src/defaultvaluebehavior.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,7 @@ typedef PyObject*
187187
( *handler )( Member* member, CAtom* atom );
188188

189189

190-
static handler
191-
handlers[] = {
190+
static const std::array<handler, DefaultValue::Mode::Last> handlers = {
192191
no_op_handler,
193192
static_handler,
194193
list_handler,
@@ -205,7 +204,6 @@ handlers[] = {
205204
member_method_object_handler
206205
};
207206

208-
static_assert( sizeof(handlers) / sizeof(handler) == DefaultValue::Mode::Last, "Handler missing" );
209207

210208
} // namespace
211209

atom/src/delattrbehavior.cpp

+1-4
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,7 @@ typedef int
180180
( *handler )( Member* member, CAtom* atom );
181181

182182

183-
static handler
184-
handlers[] = {
183+
static const std::array<handler, DelAttr::Mode::Last> handlers = {
185184
no_op_handler,
186185
slot_handler,
187186
constant_handler,
@@ -192,8 +191,6 @@ handlers[] = {
192191
property_handler
193192
};
194193

195-
static_assert( sizeof(handlers) / sizeof(handler) == DelAttr::Mode::Last, "Handler missing" );
196-
197194

198195
} // namespace
199196

atom/src/getattrbehavior.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,7 @@ typedef PyObject*
243243
( *handler )( Member* member, CAtom* atom );
244244

245245

246-
static handler
247-
handlers[] = {
246+
static const std::array<handler, GetAttr::Mode::Last> handlers = {
248247
no_op_handler,
249248
slot_handler,
250249
event_handler,
@@ -259,7 +258,6 @@ handlers[] = {
259258
member_method_object_handler
260259
};
261260

262-
static_assert( sizeof(handlers) / sizeof(handler) == GetAttr::Mode::Last, "Handler missing" );
263261

264262
} // namespace
265263

atom/src/getstatebehavior.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,7 @@ typedef PyObject*
117117
( *handler )( Member* member, CAtom* atom );
118118

119119

120-
static handler
121-
handlers[] = {
120+
static const std::array<handler, GetState::Mode::Last> handlers = {
122121
include_handler, // We want the include handler to be the default one
123122
exclude_handler,
124123
include_non_default_handler,
@@ -127,7 +126,6 @@ handlers[] = {
127126
member_method_object_handler
128127
};
129128

130-
static_assert( sizeof(handlers) / sizeof(handler) == GetState::Mode::Last, "Handler missing" );
131129

132130
} // namespace
133131

atom/src/member.h

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
|----------------------------------------------------------------------------*/
88
#pragma once
99

10+
#include <array>
1011
#include <vector>
1112
#include <cppy/cppy.h>
1213
#include "inttypes.h"

atom/src/postgetattrbehavior.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,14 @@ typedef PyObject*
8787
( *handler )( Member* member, CAtom* atom, PyObject* value );
8888

8989

90-
static handler
91-
handlers[] = {
90+
static const std::array<handler, PostGetAttr::Mode::Last> handlers = {
9291
no_op_handler,
9392
delegate_handler,
9493
object_method_value_handler,
9594
object_method_name_value_handler,
9695
member_method_object_value_handler
9796
};
9897

99-
static_assert( sizeof(handlers) / sizeof(handler) == PostGetAttr::Mode::Last, "Handler missing" );
10098

10199
} // namespace
102100

atom/src/postsetattrbehavior.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,14 @@ typedef int
100100
( *handler )( Member* member, CAtom* atom, PyObject* oldvalue, PyObject* newvalue );
101101

102102

103-
static handler
104-
handlers[] = {
103+
static const std::array<handler, PostSetAttr::Mode::Last> handlers = {
105104
no_op_handler,
106105
delegate_handler,
107106
object_method_old_new_handler,
108107
object_method_name_old_new_handler,
109108
member_method_object_old_new_handler
110109
};
111110

112-
static_assert( sizeof(handlers) / sizeof(handler) == PostSetAttr::Mode::Last, "Handler missing" );
113111

114112
} // namespace
115113

atom/src/postvalidatebehavior.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,14 @@ typedef PyObject*
9191
( *handler )( Member* member, CAtom* atom, PyObject* oldvalue, PyObject* newvalue );
9292

9393

94-
static handler
95-
handlers[] = {
94+
static const std::array<handler, PostValidate::Mode::Last> handlers = {
9695
no_op_handler,
9796
delegate_handler,
9897
object_method_old_new_handler,
9998
object_method_name_old_new_handler,
10099
member_method_object_old_new_handler
101100
};
102101

103-
static_assert( sizeof(handlers) / sizeof(handler) == PostValidate::Mode::Last, "Handler missing" );
104102

105103
} // namespace
106104

atom/src/setattrbehavior.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -363,8 +363,7 @@ typedef int
363363
( *handler )( Member* member, CAtom* atom, PyObject* value );
364364

365365

366-
static handler
367-
handlers[] = {
366+
static const std::array<handler, SetAttr::Mode::Last> handlers = {
368367
no_op_handler,
369368
slot_handler,
370369
constant_handler,
@@ -380,7 +379,6 @@ handlers[] = {
380379
member_method_object_value_handler
381380
};
382381

383-
static_assert( sizeof(handlers) / sizeof(handler) == SetAttr::Mode::Last, "Handler missing" );
384382

385383
} // namespace
386384

atom/src/validatebehavior.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -964,8 +964,7 @@ typedef PyObject*
964964
( *handler )( Member* member, CAtom* atom, PyObject* oldvalue, PyObject* newvalue );
965965

966966

967-
static handler
968-
handlers[] = {
967+
static const std::array<handler, Validate::Mode::Last> handlers = {
969968
no_op_handler,
970969
bool_handler,
971970
long_handler,
@@ -1000,7 +999,6 @@ handlers[] = {
1000999
member_method_object_old_new_handler
10011000
};
10021001

1003-
static_assert( sizeof(handlers) / sizeof(handler) == Validate::Mode::Last, "Handler missing" );
10041002

10051003
} // namespace
10061004

0 commit comments

Comments
 (0)