Skip to content

Commit 7d045c2

Browse files
committed
Revert parse_mode_and_context change
1 parent b00dd66 commit 7d045c2

File tree

1 file changed

+26
-25
lines changed

1 file changed

+26
-25
lines changed

atom/src/member.cpp

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -455,17 +455,18 @@ Member_set_index( Member* self, PyObject* value )
455455

456456

457457
// Returns borrowed reference to context or null
458-
template<typename T> PyObject*
459-
parse_mode_and_context( PyObject*const *args, Py_ssize_t n, T& mode )
458+
template<typename T> bool
459+
parse_mode_and_context( PyObject*const *args, Py_ssize_t n, PyObject** context, T& mode )
460460
{
461461

462462
if( n != 2 )
463-
return 0;
463+
return false;
464464
if( !EnumTypes::from_py_enum( args[0], mode ) )
465-
return 0;
466-
if( !Member::check_context( mode, args[1] ) )
467-
return 0;
468-
return args[1];
465+
return false;
466+
*context = args[1];
467+
if( !Member::check_context( mode, *context ) )
468+
return false;
469+
return true;
469470
}
470471

471472

@@ -489,8 +490,8 @@ PyObject*
489490
Member_set_getattr_mode( Member* self, PyObject*const *args, Py_ssize_t n )
490491
{
491492
GetAttr::Mode mode;
492-
PyObject* context = parse_mode_and_context( args, n, mode );
493-
if( !context )
493+
PyObject* context;
494+
if( !parse_mode_and_context( args, n, &context, mode ) )
494495
return 0;
495496
self->set_getattr_mode( mode );
496497
cppy::replace( &self->getattr_context, context );
@@ -518,8 +519,8 @@ PyObject*
518519
Member_set_setattr_mode( Member* self, PyObject*const *args, Py_ssize_t n )
519520
{
520521
SetAttr::Mode mode;
521-
PyObject* context = parse_mode_and_context( args, n, mode );
522-
if( !context )
522+
PyObject* context;
523+
if( !parse_mode_and_context( args, n, &context, mode ) )
523524
return 0;
524525
self->set_setattr_mode( mode );
525526
cppy::replace( &self->setattr_context, context );
@@ -547,8 +548,8 @@ PyObject*
547548
Member_set_delattr_mode( Member* self, PyObject*const *args, Py_ssize_t n )
548549
{
549550
DelAttr::Mode mode;
550-
PyObject* context = parse_mode_and_context( args, n, mode );
551-
if( !context )
551+
PyObject* context;
552+
if( !parse_mode_and_context( args, n, &context, mode ) )
552553
return 0;
553554
self->set_delattr_mode( mode );
554555
cppy::replace( &self->delattr_context, context );
@@ -576,8 +577,8 @@ PyObject*
576577
Member_set_post_getattr_mode( Member* self, PyObject*const *args, Py_ssize_t n )
577578
{
578579
PostGetAttr::Mode mode;
579-
PyObject* context = parse_mode_and_context( args, n, mode );
580-
if( !context )
580+
PyObject* context;
581+
if( !parse_mode_and_context( args, n, &context, mode ) )
581582
return 0;
582583
self->set_post_getattr_mode( mode );
583584
cppy::replace(&self->post_getattr_context, context);
@@ -605,8 +606,8 @@ PyObject*
605606
Member_set_post_setattr_mode( Member* self, PyObject*const *args, Py_ssize_t n )
606607
{
607608
PostSetAttr::Mode mode;
608-
PyObject* context = parse_mode_and_context( args, n, mode );
609-
if( !context )
609+
PyObject* context;
610+
if( !parse_mode_and_context( args, n, &context, mode ) )
610611
return 0;
611612
self->set_post_setattr_mode( mode );
612613
cppy::replace( &self->post_setattr_context, context );
@@ -634,8 +635,8 @@ PyObject*
634635
Member_set_default_value_mode( Member* self, PyObject*const *args, Py_ssize_t n )
635636
{
636637
DefaultValue::Mode mode;
637-
PyObject* context = parse_mode_and_context( args, n, mode );
638-
if( !context )
638+
PyObject* context;
639+
if( !parse_mode_and_context( args, n, &context, mode ) )
639640
return 0;
640641
self->set_default_value_mode( mode );
641642
cppy::replace( &self->default_value_context, context );
@@ -663,8 +664,8 @@ PyObject*
663664
Member_set_validate_mode( Member* self, PyObject*const *args, Py_ssize_t n )
664665
{
665666
Validate::Mode mode;
666-
PyObject* context = parse_mode_and_context( args, n, mode );
667-
if( !context )
667+
PyObject* context;
668+
if( !parse_mode_and_context( args, n, &context, mode ) )
668669
return 0;
669670
self->set_validate_mode( mode );
670671
cppy::replace( &self->validate_context, context );
@@ -692,8 +693,8 @@ PyObject*
692693
Member_set_post_validate_mode( Member* self, PyObject*const *args, Py_ssize_t n )
693694
{
694695
PostValidate::Mode mode;
695-
PyObject* context = parse_mode_and_context( args, n, mode );
696-
if( !context )
696+
PyObject* context;
697+
if( !parse_mode_and_context( args, n, &context, mode ) )
697698
return 0;
698699
self->set_post_validate_mode( mode );
699700
cppy::replace( &self->post_validate_context, context );
@@ -721,8 +722,8 @@ PyObject*
721722
Member_set_getstate_mode( Member* self, PyObject*const *args, Py_ssize_t n )
722723
{
723724
GetState::Mode mode;
724-
PyObject* context = parse_mode_and_context( args, n, mode );
725-
if( !context )
725+
PyObject* context;
726+
if( !parse_mode_and_context( args, n, &context, mode ) )
726727
return 0;
727728
self->set_getstate_mode( mode );
728729
cppy::replace( &self->getstate_context, context );

0 commit comments

Comments
 (0)