mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			124 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* internal.h
 | 
						|
 | 
						|
   Internal definitions used by Expat.  This is not needed to compile
 | 
						|
   client code.
 | 
						|
 | 
						|
   The following calling convention macros are defined for frequently
 | 
						|
   called functions:
 | 
						|
 | 
						|
   FASTCALL    - Used for those internal functions that have a simple
 | 
						|
                 body and a low number of arguments and local variables.
 | 
						|
 | 
						|
   PTRCALL     - Used for functions called though function pointers.
 | 
						|
 | 
						|
   PTRFASTCALL - Like PTRCALL, but for low number of arguments.
 | 
						|
 | 
						|
   inline      - Used for selected internal functions for which inlining
 | 
						|
                 may improve performance on some platforms.
 | 
						|
 | 
						|
   Note: Use of these macros is based on judgement, not hard rules,
 | 
						|
         and therefore subject to change.
 | 
						|
                            __  __            _
 | 
						|
                         ___\ \/ /_ __   __ _| |_
 | 
						|
                        / _ \\  /| '_ \ / _` | __|
 | 
						|
                       |  __//  \| |_) | (_| | |_
 | 
						|
                        \___/_/\_\ .__/ \__,_|\__|
 | 
						|
                                 |_| XML parser
 | 
						|
 | 
						|
   Copyright (c) 1997-2000 Thai Open Source Software Center Ltd
 | 
						|
   Copyright (c) 2000-2017 Expat development team
 | 
						|
   Licensed under the MIT license:
 | 
						|
 | 
						|
   Permission is  hereby granted,  free of charge,  to any  person obtaining
 | 
						|
   a  copy  of  this  software   and  associated  documentation  files  (the
 | 
						|
   "Software"),  to  deal in  the  Software  without restriction,  including
 | 
						|
   without  limitation the  rights  to use,  copy,  modify, merge,  publish,
 | 
						|
   distribute, sublicense, and/or sell copies of the Software, and to permit
 | 
						|
   persons  to whom  the Software  is  furnished to  do so,  subject to  the
 | 
						|
   following conditions:
 | 
						|
 | 
						|
   The above copyright  notice and this permission notice  shall be included
 | 
						|
   in all copies or substantial portions of the Software.
 | 
						|
 | 
						|
   THE  SOFTWARE  IS  PROVIDED  "AS  IS",  WITHOUT  WARRANTY  OF  ANY  KIND,
 | 
						|
   EXPRESS  OR IMPLIED,  INCLUDING  BUT  NOT LIMITED  TO  THE WARRANTIES  OF
 | 
						|
   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 | 
						|
   NO EVENT SHALL THE AUTHORS OR  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 | 
						|
   DAMAGES OR  OTHER LIABILITY, WHETHER  IN AN  ACTION OF CONTRACT,  TORT OR
 | 
						|
   OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
 | 
						|
   USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
						|
*/
 | 
						|
 | 
						|
#if defined(__GNUC__) && defined(__i386__) && !defined(__MINGW32__)
 | 
						|
/* We'll use this version by default only where we know it helps.
 | 
						|
 | 
						|
   regparm() generates warnings on Solaris boxes.   See SF bug #692878.
 | 
						|
 | 
						|
   Instability reported with egcs on a RedHat Linux 7.3.
 | 
						|
   Let's comment out:
 | 
						|
   #define FASTCALL __attribute__((stdcall, regparm(3)))
 | 
						|
   and let's try this:
 | 
						|
*/
 | 
						|
#define FASTCALL __attribute__((regparm(3)))
 | 
						|
#define PTRFASTCALL __attribute__((regparm(3)))
 | 
						|
#endif
 | 
						|
 | 
						|
/* Using __fastcall seems to have an unexpected negative effect under
 | 
						|
   MS VC++, especially for function pointers, so we won't use it for
 | 
						|
   now on that platform. It may be reconsidered for a future release
 | 
						|
   if it can be made more effective.
 | 
						|
   Likely reason: __fastcall on Windows is like stdcall, therefore
 | 
						|
   the compiler cannot perform stack optimizations for call clusters.
 | 
						|
*/
 | 
						|
 | 
						|
/* Make sure all of these are defined if they aren't already. */
 | 
						|
 | 
						|
#ifndef FASTCALL
 | 
						|
#define FASTCALL
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef PTRCALL
 | 
						|
#define PTRCALL
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef PTRFASTCALL
 | 
						|
#define PTRFASTCALL
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef XML_MIN_SIZE
 | 
						|
#if !defined(__cplusplus) && !defined(inline)
 | 
						|
#ifdef __GNUC__
 | 
						|
#define inline __inline
 | 
						|
#endif /* __GNUC__ */
 | 
						|
#endif
 | 
						|
#endif /* XML_MIN_SIZE */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
#define inline inline
 | 
						|
#else
 | 
						|
#ifndef inline
 | 
						|
#define inline
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef UNUSED_P
 | 
						|
# ifdef __GNUC__
 | 
						|
#  define UNUSED_P(p) UNUSED_ ## p __attribute__((__unused__))
 | 
						|
# else
 | 
						|
#  define UNUSED_P(p) UNUSED_ ## p
 | 
						|
# endif
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
void
 | 
						|
_INTERNAL_trim_to_complete_utf8_characters(const char * from, const char ** fromLimRef);
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |