mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	- tp_init shouldn't call base class tp_init by default
- tp_new (which was apparently always overridden:-) called base class tp_init in stead of tp_new.
This commit is contained in:
		
							parent
							
								
									3b675d299c
								
							
						
					
					
						commit
						f75225b448
					
				
					 1 changed files with 3 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -383,6 +383,8 @@ class PEP253Mixin(PEP252Mixin):
 | 
			
		|||
        Output("%s_tp_free, /* tp_free */", self.prefix)
 | 
			
		||||
 | 
			
		||||
    def output_tp_initBody_basecall(self):
 | 
			
		||||
        """If a type shares its init call with its base type set output_tp_initBody
 | 
			
		||||
        to output_tp_initBody_basecall"""
 | 
			
		||||
        if self.basetype:
 | 
			
		||||
            Output("if (%s.tp_init)", self.basetype)
 | 
			
		||||
            OutLbrace()
 | 
			
		||||
| 
						 | 
				
			
			@ -395,7 +397,6 @@ class PEP253Mixin(PEP252Mixin):
 | 
			
		|||
        if self.output_tp_initBody:
 | 
			
		||||
            Output("static int %s_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)", self.prefix)
 | 
			
		||||
            OutLbrace()
 | 
			
		||||
            self.output_tp_initBody_basecall()
 | 
			
		||||
            self.output_tp_initBody()
 | 
			
		||||
            OutRbrace()
 | 
			
		||||
        else:
 | 
			
		||||
| 
						 | 
				
			
			@ -425,7 +426,7 @@ class PEP253Mixin(PEP252Mixin):
 | 
			
		|||
        if self.basetype:
 | 
			
		||||
            Output("if (%s.tp_new)", self.basetype)
 | 
			
		||||
            OutLbrace()
 | 
			
		||||
            Output("if ( (*%s.tp_init)(_self, _args, _kwds) == NULL) return NULL;", self.basetype)
 | 
			
		||||
            Output("if ( (*%s.tp_new)(type, _args, _kwds) == NULL) return NULL;", self.basetype)
 | 
			
		||||
            Dedent()
 | 
			
		||||
            Output("} else {")
 | 
			
		||||
            Indent()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue