| 
									
										
										
										
											2011-10-06 18:57:27 +02:00
										 |  |  | #ifndef Py_LIMITED_API
 | 
					
						
							| 
									
										
										
										
											2018-11-01 02:30:36 +01:00
										 |  |  | #ifndef Py_INTERNAL_ACCU_H
 | 
					
						
							|  |  |  | #define Py_INTERNAL_ACCU_H
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2011-10-06 18:57:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*** This is a private API for use by the interpreter and the stdlib.
 | 
					
						
							|  |  |  |  *** Its definition may be changed or removed at any moment. | 
					
						
							|  |  |  |  ***/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-17 23:02:26 +02:00
										 |  |  | #ifndef Py_BUILD_CORE
 | 
					
						
							|  |  |  | #  error "this header requires Py_BUILD_CORE define"
 | 
					
						
							| 
									
										
										
										
											2018-11-09 13:03:37 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-06 18:57:27 +02:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * A two-level accumulator of unicode objects that avoids both the overhead | 
					
						
							|  |  |  |  * of keeping a huge number of small separate objects, and the quadratic | 
					
						
							|  |  |  |  * behaviour of using a naive repeated concatenation scheme. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-22 23:10:37 +00:00
										 |  |  | #undef small /* defined by some Windows headers */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-06 18:57:27 +02:00
										 |  |  | typedef struct { | 
					
						
							|  |  |  |     PyObject *large;  /* A list of previously accumulated large strings */ | 
					
						
							|  |  |  |     PyObject *small;  /* Pending small strings */ | 
					
						
							|  |  |  | } _PyAccu; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyAPI_FUNC(int) _PyAccu_Init(_PyAccu *acc); | 
					
						
							|  |  |  | PyAPI_FUNC(int) _PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode); | 
					
						
							|  |  |  | PyAPI_FUNC(PyObject *) _PyAccu_FinishAsList(_PyAccu *acc); | 
					
						
							|  |  |  | PyAPI_FUNC(PyObject *) _PyAccu_Finish(_PyAccu *acc); | 
					
						
							|  |  |  | PyAPI_FUNC(void) _PyAccu_Destroy(_PyAccu *acc); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2018-11-01 02:30:36 +01:00
										 |  |  | #endif /* !Py_INTERNAL_ACCU_H */
 | 
					
						
							|  |  |  | #endif /* !Py_LIMITED_API */
 |