OSDN Git Service

Work-around stack overflow issues.
authorIan Rogers <irogers@google.com>
Wed, 12 Mar 2014 23:23:09 +0000 (16:23 -0700)
committerIan Rogers <irogers@google.com>
Wed, 12 Mar 2014 23:23:09 +0000 (16:23 -0700)
Change-Id: I06693a53469f1f2cccc956bff5d53f04aed5f62d

runtime/thread.h

index 2ebc107..94a8bd8 100644 (file)
@@ -95,7 +95,13 @@ enum ThreadFlag {
 class PACKED(4) Thread {
  public:
   // Space to throw a StackOverflowError in.
-  static const size_t kStackOverflowReservedBytes = 16 * KB;
+#if !defined(NDEBUG) && defined(__clang__)
+  // TODO: debug clang builds have large switch based interpreter frames that require more stack
+  // space to handle stack overflow exceptions.
+  static constexpr size_t kStackOverflowReservedBytes = 18 * KB;
+#else
+  static constexpr size_t kStackOverflowReservedBytes = 16 * KB;
+#endif
 
   // Creates a new native thread corresponding to the given managed peer.
   // Used to implement Thread.start.