@@ -113,18 +113,18 @@ SN_TYPE_PAR_DEF class sharing_node_innert : public sharing_node_baset
113
113
typedef typename d_ct::leaft leaft;
114
114
typedef typename d_ct::leaf_listt leaf_listt;
115
115
116
- sharing_node_innert () : data(empty_data)
116
+ sharing_node_innert ()
117
117
{
118
118
}
119
119
120
120
bool empty () const
121
121
{
122
- return data == empty_data ;
122
+ return ! data;
123
123
}
124
124
125
125
void clear ()
126
126
{
127
- data = empty_data ;
127
+ data. reset () ;
128
128
}
129
129
130
130
bool shares_with (const sharing_node_innert &other) const
@@ -153,7 +153,7 @@ SN_TYPE_PAR_DEF class sharing_node_innert : public sharing_node_baset
153
153
154
154
d_it &write_internal ()
155
155
{
156
- if (data == empty_data )
156
+ if (! data)
157
157
{
158
158
data = make_shared_derived_u<SN_PTR_TYPE_ARGS>();
159
159
}
@@ -176,7 +176,7 @@ SN_TYPE_PAR_DEF class sharing_node_innert : public sharing_node_baset
176
176
177
177
d_ct &write_container ()
178
178
{
179
- if (data == empty_data )
179
+ if (! data)
180
180
{
181
181
data = make_shared_derived_v<SN_PTR_TYPE_ARGS>();
182
182
}
@@ -339,13 +339,8 @@ SN_TYPE_PAR_DEF class sharing_node_innert : public sharing_node_baset
339
339
}
340
340
341
341
small_shared_two_way_ptrt<SN_PTR_TYPE_ARGS> data;
342
- static small_shared_two_way_ptrt<SN_PTR_TYPE_ARGS> empty_data;
343
342
};
344
343
345
- SN_TYPE_PAR_DEF small_shared_two_way_ptrt<SN_PTR_TYPE_ARGS>
346
- sharing_node_innert<SN_TYPE_ARGS>::empty_data =
347
- small_shared_two_way_ptrt<SN_PTR_TYPE_ARGS>();
348
-
349
344
// Leafs
350
345
351
346
SN_TYPE_PAR_DECL class d_leaft : public small_shared_pointeet <unsigned >
@@ -364,7 +359,7 @@ SN_TYPE_PAR_DEF class sharing_node_leaft : public sharing_node_baset
364
359
public:
365
360
typedef d_leaft<SN_TYPE_ARGS> d_lt;
366
361
367
- sharing_node_leaft (const keyT &k, const valueT &v) : data(empty_data)
362
+ sharing_node_leaft (const keyT &k, const valueT &v)
368
363
{
369
364
SN_ASSERT (empty ());
370
365
@@ -384,12 +379,12 @@ SN_TYPE_PAR_DEF class sharing_node_leaft : public sharing_node_baset
384
379
385
380
bool empty () const
386
381
{
387
- return data == empty_data ;
382
+ return ! data;
388
383
}
389
384
390
385
void clear ()
391
386
{
392
- data = empty_data ;
387
+ data. reset () ;
393
388
}
394
389
395
390
bool shares_with (const sharing_node_leaft &other) const
@@ -404,9 +399,7 @@ SN_TYPE_PAR_DEF class sharing_node_leaft : public sharing_node_baset
404
399
405
400
d_lt &write ()
406
401
{
407
- SN_ASSERT (data.use_count () > 0 );
408
-
409
- if (data == empty_data)
402
+ if (!data)
410
403
{
411
404
data = make_small_shared_ptr<d_lt>();
412
405
}
@@ -453,11 +446,6 @@ SN_TYPE_PAR_DEF class sharing_node_leaft : public sharing_node_baset
453
446
}
454
447
455
448
small_shared_ptrt<SN_PTR_TYPE_ARG> data;
456
- static small_shared_ptrt<SN_PTR_TYPE_ARG> empty_data;
457
449
};
458
450
459
- SN_TYPE_PAR_DEF small_shared_ptrt<SN_PTR_TYPE_ARG>
460
- sharing_node_leaft<SN_TYPE_ARGS>::empty_data =
461
- make_small_shared_ptr<SN_PTR_TYPE_ARG>();
462
-
463
451
#endif
0 commit comments