[gjs/wip/xulrunner-2-rebase2: 3/9] compat.h: Don't include config.h, instead do inspection of jsapi.h



commit ea60f5b453f97532a0d05e9949aed540634a2ae8
Author: Colin Walters <walters verbum org>
Date:   Thu Oct 21 13:35:21 2010 -0400

    compat.h: Don't include config.h, instead do inspection of jsapi.h
    
    This allows us to sanely install this header file, which will allow
    us to make jsapi-util.h depend on it.

 gjs/compat.h |   32 ++++++++++++++++++++++++--------
 1 files changed, 24 insertions(+), 8 deletions(-)
---
diff --git a/gjs/compat.h b/gjs/compat.h
index 3976064..03daf6c 100644
--- a/gjs/compat.h
+++ b/gjs/compat.h
@@ -1,6 +1,7 @@
 /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
 /*
  * Copyright (c) 2009  litl, LLC
+ * Copyright (c) 2010  Red Hat, Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to
@@ -21,20 +22,26 @@
  * IN THE SOFTWARE.
  */
 
+#if !defined (__GJS_GJS_MODULE_H__) && !defined (GJS_COMPILATION)
+#error "Only <gjs/gjs-module.h> can be included directly."
+#endif
+
 #ifndef __GJS_COMPAT_H__
 #define __GJS_COMPAT_H__
 
-G_BEGIN_DECLS
-
-#include "config.h"
+#include <jsapi.h>
 
+G_BEGIN_DECLS
 
-/* See https://bugzilla.gnome.org/show_bug.cgi?id=622896 */
-#ifndef HAVE_MOZJS_2
+/* This file inspects jsapi.h and attempts to provide a compatibility shim.
+ * See https://bugzilla.gnome.org/show_bug.cgi?id=622896 for some initial discussion.
+ */
 
 /* The old JS_AddRoot accepted anything via void *, new
  * api is stricter.
+ * Upstream commit 2fc2a12a4565, Spidermonkey >= Jun 07 2010
  */
+#ifndef JS_TYPED_ROOTING_API
 #define JS_AddValueRoot JS_AddRoot
 #define JS_AddObjectRoot JS_AddRoot
 #define JS_AddStringRoot JS_AddRoot
@@ -43,17 +50,26 @@ G_BEGIN_DECLS
 #define JS_RemoveObjectRoot JS_RemoveRoot
 #define JS_RemoveStringRoot JS_RemoveRoot
 #define JS_RemoveGCThingRoot JS_RemoveRoot
+#endif
 
-/* This one is complex; jsid appears to be explicitly
+/* commit 5ad4532aa996, Spidermonkey > Jun 17 2010
+ * This one is complex; jsid appears to be explicitly
  * different from JSVAL now.  If we're on an old xulrunner,
- * define JSID_IS_VOID in a simple way.
+ * define JSID_IS_VOID in a compatible way.
  */
+#ifndef JSID_VOID
 #define JSID_VOID JSVAL_VOID
 #define JSID_IS_VOID(id) (id == JSVAL_VOID)
 #define INT_TO_JSID(i) ((jsid) INT_TO_JSVAL(i))
+#endif
 
+/* commit 66c8ad02543b, Spidermonkey > Aug 16 2010
+ * "Slow natives" */
+#ifdef JSFUN_CONSTRUCTOR
+/* All functions are "fast", so define this to a no-op */
+#define JSFUN_FAST_NATIVE 0
 #endif
 
 G_END_DECLS
 
-#endif  /* __GJS_MEM_H__ */
+#endif  /* __GJS_COMPAT_H__ */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]