diff src/lisp.h @ 5825:5d5aeb79edb4

Fix build with g++. This patch fixes various issues that cause build failures with g++ 4.8.3. See <CAHCOHQ=6yKcjQELvG8FOHXcWVez+HufUWb4FdcJKpUNhm+8B=g@mail.gmail.com> in xemacs-patches.
author Jerry James <james@xemacs.org>
date Thu, 06 Nov 2014 09:34:06 -0700
parents b3824b7f5627
children 750fab17b299 f5dfcf2323bc
line wrap: on
line diff
--- a/src/lisp.h	Sat Oct 25 15:59:31 2014 +0200
+++ b/src/lisp.h	Thu Nov 06 09:34:06 2014 -0700
@@ -1368,7 +1368,7 @@
    __temp_alloca_size__ = (size),                               \
    __temp_alloca_size__  > MAX_ALLOCA_VS_C_ALLOCA ?             \
    xemacs_c_alloca (__temp_alloca_size__) :                     \
-   (need_to_check_c_alloca ? xemacs_c_alloca (0) : (void) 0,    \
+   (need_to_check_c_alloca ? xemacs_c_alloca (0) : NULL,        \
     alloca (__temp_alloca_size__)))
 
 /* Version of ALLOCA() that is guaranteed to work inside of function calls
@@ -1402,7 +1402,7 @@
    __temp_alloca_size__ = (size),                               \
    __temp_alloca_size__  > MAX_ALLOCA_VS_MALLOC ?               \
    xmalloc_and_record_unwind (__temp_alloca_size__) :           \
-   (need_to_check_c_alloca ? xemacs_c_alloca (0) : (void) 0,  \
+   (need_to_check_c_alloca ? xemacs_c_alloca (0) : NULL,        \
     alloca (__temp_alloca_size__)))
 
 /* -------------- convenience functions for memory allocation ------------- */
@@ -2643,13 +2643,27 @@
 #ifdef NEW_GC
 #define STRING_DATA_OBJECT(s) ((s)->data_object)
 #define XSTRING_DATA_OBJECT(s) (STRING_DATA_OBJECT (XSTRING (s)))
-#define XSTRING_LENGTH(s) (XSTRING_DATA_SIZE (XSTRING (s)))
+DECLARE_INLINE_HEADER (
+Bytecount
+XSTRING_LENGTH (Lisp_Object s)
+)
+{
+  Lisp_String *str = XSTRING (s);
+  return XSTRING_DATA_SIZE (str);
+}
 #else /* not NEW_GC */
 #define XSTRING_LENGTH(s) (XSTRING (s)->size_)
 #endif /* not NEW_GC */
 #define XSTRING_PLIST(s) (XSTRING (s)->plist)
 #ifdef NEW_GC
-#define XSTRING_DATA(s) (XSTRING_DATA_DATA (XSTRING (s)))
+DECLARE_INLINE_HEADER (
+Ibyte *
+XSTRING_DATA (Lisp_Object s)
+)
+{
+  Lisp_String *str = XSTRING (s);
+  return XSTRING_DATA_DATA (str);
+}
 #else /* not NEW_GC */
 #define XSTRING_DATA(s) (XSTRING (s)->data_ + 0)
 #endif /* not NEW_GC */