Use long alignment for scratch buffer

Fixes last of scratch alignment warnings in hb-coretext.
diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh
index 478bad0..d3ed449 100644
--- a/src/hb-buffer-private.hh
+++ b/src/hb-buffer-private.hh
@@ -186,7 +186,7 @@
   HB_INTERNAL bool make_room_for (unsigned int num_in, unsigned int num_out);
   HB_INTERNAL bool shift_forward (unsigned int count);
 
-  typedef int scratch_buffer_t;
+  typedef long scratch_buffer_t;
   HB_INTERNAL scratch_buffer_t *get_scratch_buffer (unsigned int *size);
 
   inline void clear_context (unsigned int side) { context_len[side] = 0; }
diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc
index df2ad73..bbf8ea0 100644
--- a/src/hb-buffer.cc
+++ b/src/hb-buffer.cc
@@ -161,9 +161,9 @@
   out_len = 0;
   out_info = info;
 
-  ASSERT_STATIC (sizeof (pos[0]) % sizeof (scratch_buffer_t) == 0);
+  assert ((uintptr_t) pos % sizeof (scratch_buffer_t) == 0);
   *size = allocated * sizeof (pos[0]) / sizeof (scratch_buffer_t);
-  return (scratch_buffer_t *) pos;
+  return (scratch_buffer_t *) (void *) pos;
 }