Add OALLOC*() to make allocating from obstacks a bit nicer.
[libfirm] / ir / stat / pattern.c
index 028dad3..47ff364 100644 (file)
@@ -23,9 +23,7 @@
  * @author  Michael Beck
  * @version $Id$
  */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
 
 #include <assert.h>
 #include <stdlib.h>
@@ -176,7 +174,7 @@ static void init_buf(CODE_BUFFER *buf, BYTE *data, unsigned len) {
  *
  * The hash value for the buffer content is updated.
  */
-static INLINE void put_byte(CODE_BUFFER *buf, BYTE byte) {
+static inline void put_byte(CODE_BUFFER *buf, BYTE byte) {
        if (buf->next < buf->end) {
                *buf->next++ = byte;
                buf->hash = (buf->hash * 9) ^ byte;
@@ -234,7 +232,7 @@ static unsigned buf_overrun(const CODE_BUFFER *buf) {
  *
  * @return  the next byte from the code buffer
  */
-static INLINE BYTE look_byte(CODE_BUFFER *buf) {
+static inline BYTE look_byte(CODE_BUFFER *buf) {
        if (buf->next < buf->end)
                return *buf->next;
        return VLC_TAG_END;
@@ -247,7 +245,7 @@ static INLINE BYTE look_byte(CODE_BUFFER *buf) {
  *
  * @return  the next byte from the code buffer
  */
-static INLINE BYTE get_byte(CODE_BUFFER *buf) {
+static inline BYTE get_byte(CODE_BUFFER *buf) {
        if (buf->next < buf->end)
                return *buf->next++;
        return VLC_TAG_END;
@@ -420,8 +418,7 @@ static int _encode_node(ir_node *node, int max_depth, codec_env_t *env) {
                ir_mode *mode = get_irn_mode(node);
 
                if (mode)
-                       /* FIXME: not 64bit save */
-                       put_code(env->buf, (unsigned)mode);
+                       put_code(env->buf, stat_find_mode_index(mode));
                else
                        put_tag(env->buf, VLC_TAG_EMPTY);
        }  /* if */
@@ -651,9 +648,7 @@ static pattern_entry_t *pattern_get_entry(CODE_BUFFER *buf, pset *set) {
        unsigned len = buf_lenght(buf);
        unsigned hash;
 
-       key = obstack_alloc(&status->obst, offsetof(pattern_entry_t, buf) + len);
-       assert(key);
-
+       key = OALLOCF(&status->obst, pattern_entry_t, buf, len);
        key->len = len;
        memcpy(key->buf, buf_content(buf), len);
 
@@ -803,7 +798,7 @@ static void pattern_output(const char *fname) {
        /* creates a dumper */
        dump = new_vcg_dumper(fname, 100);
 
-       pattern_arr = xmalloc(sizeof(*pattern_arr) * count);
+       pattern_arr = XMALLOCN(pattern_entry_t*, count);
        for (i = 0, entry = pset_first(status->pattern_hash);
             entry && i < count;
             entry = pset_next(status->pattern_hash), ++i) {