fixed compiler warnings for release builds
This commit is contained in:
+15
-14
@@ -28,9 +28,9 @@
|
||||
** +--------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "objects.h"
|
||||
#include "../utils/defs.h"
|
||||
|
||||
static _Bool to_bool(Object *obj, Error *err);
|
||||
static void print(Object *obj, FILE *fp);
|
||||
@@ -62,13 +62,13 @@ static Object the_false_object = {
|
||||
|
||||
static int hash(Object *self)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_bool);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_bool);
|
||||
|
||||
if(self == &the_true_object)
|
||||
return 1;
|
||||
|
||||
assert(self == &the_false_object);
|
||||
ASSERT(self == &the_false_object);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -81,19 +81,20 @@ static Object *copy(Object *self, Heap *heap, Error *err)
|
||||
|
||||
static _Bool op_eql(Object *self, Object *other)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_bool);
|
||||
assert(other != NULL);
|
||||
assert(other->type == &t_bool);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_bool);
|
||||
ASSERT(other != NULL);
|
||||
ASSERT(other->type == &t_bool);
|
||||
|
||||
return self == other;
|
||||
}
|
||||
|
||||
static _Bool to_bool(Object *obj, Error *err)
|
||||
{
|
||||
assert(obj);
|
||||
assert(err);
|
||||
assert(Object_GetType(obj) == &t_bool);
|
||||
UNUSED(err);
|
||||
ASSERT(obj);
|
||||
ASSERT(err);
|
||||
ASSERT(Object_GetType(obj) == &t_bool);
|
||||
return obj == &the_true_object;
|
||||
}
|
||||
|
||||
@@ -111,9 +112,9 @@ Object *Object_FromBool(_Bool val, Heap *heap, Error *error)
|
||||
|
||||
static void print(Object *obj, FILE *fp)
|
||||
{
|
||||
assert(fp != NULL);
|
||||
assert(obj != NULL);
|
||||
assert(obj->type == &t_bool);
|
||||
ASSERT(fp != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
ASSERT(obj->type == &t_bool);
|
||||
|
||||
fprintf(fp, obj == &the_true_object ? "true" : "false");
|
||||
}
|
||||
+33
-32
@@ -29,7 +29,6 @@
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "../utils/defs.h"
|
||||
#include "objects.h"
|
||||
@@ -94,7 +93,7 @@ _Bool Object_IsBuffer(Object *obj)
|
||||
|
||||
Object *Object_NewBuffer(int size, Heap *heap, Error *error)
|
||||
{
|
||||
assert(size >= 0);
|
||||
ASSERT(size >= 0);
|
||||
|
||||
// Make the thing.
|
||||
BufferObject *obj;
|
||||
@@ -189,7 +188,7 @@ Object *Object_SliceBuffer(Object *buffer, int offset, int length, Heap *heap, E
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(buffer->type == &t_buffer_slice);
|
||||
ASSERT(buffer->type == &t_buffer_slice);
|
||||
|
||||
slice = (BufferSliceObject*) Heap_Malloc(heap, &t_buffer_slice, error);
|
||||
|
||||
@@ -243,7 +242,7 @@ void *Object_GetBufferAddrAndSize(Object *obj, int *size, Error *error)
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(obj->type == &t_buffer_slice);
|
||||
ASSERT(obj->type == &t_buffer_slice);
|
||||
|
||||
BufferSliceObject *slice = (BufferSliceObject*) obj;
|
||||
|
||||
@@ -256,11 +255,11 @@ void *Object_GetBufferAddrAndSize(Object *obj, int *size, Error *error)
|
||||
|
||||
static Object *buffer_select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_buffer);
|
||||
assert(key != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(error != NULL);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_buffer);
|
||||
ASSERT(key != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(error != NULL);
|
||||
|
||||
if(!Object_IsInt(key))
|
||||
{
|
||||
@@ -269,7 +268,7 @@ static Object *buffer_select(Object *self, Object *key, Heap *heap, Error *error
|
||||
}
|
||||
|
||||
int idx = Object_ToInt(key, error);
|
||||
assert(error->occurred == 0);
|
||||
ASSERT(error->occurred == 0);
|
||||
|
||||
BufferObject *buffer = (BufferObject*) self;
|
||||
|
||||
@@ -286,11 +285,11 @@ static Object *buffer_select(Object *self, Object *key, Heap *heap, Error *error
|
||||
|
||||
static Object *slice_select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_buffer_slice);
|
||||
assert(key != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(error != NULL);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_buffer_slice);
|
||||
ASSERT(key != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(error != NULL);
|
||||
|
||||
if(!Object_IsInt(key))
|
||||
{
|
||||
@@ -299,7 +298,7 @@ static Object *slice_select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
}
|
||||
|
||||
int idx = Object_ToInt(key, error);
|
||||
assert(error->occurred == 0);
|
||||
ASSERT(error->occurred == 0);
|
||||
|
||||
BufferSliceObject *slice = (BufferSliceObject*) self;
|
||||
|
||||
@@ -316,12 +315,13 @@ static Object *slice_select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
|
||||
static _Bool buffer_insert(Object *self, Object *key, Object *val, Heap *heap, Error *error)
|
||||
{
|
||||
assert(error != NULL);
|
||||
assert(key != NULL);
|
||||
assert(val != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_buffer);
|
||||
UNUSED(heap);
|
||||
ASSERT(error != NULL);
|
||||
ASSERT(key != NULL);
|
||||
ASSERT(val != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_buffer);
|
||||
|
||||
BufferObject *buffer = (BufferObject*) self;
|
||||
|
||||
@@ -332,7 +332,7 @@ static _Bool buffer_insert(Object *self, Object *key, Object *val, Heap *heap, E
|
||||
}
|
||||
|
||||
int idx = Object_ToInt(key, error);
|
||||
assert(error->occurred == 0);
|
||||
ASSERT(error->occurred == 0);
|
||||
|
||||
if(idx < 0 || idx >= buffer->size)
|
||||
{
|
||||
@@ -359,12 +359,13 @@ static _Bool buffer_insert(Object *self, Object *key, Object *val, Heap *heap, E
|
||||
|
||||
static _Bool slice_insert(Object *self, Object *key, Object *val, Heap *heap, Error *error)
|
||||
{
|
||||
assert(error != NULL);
|
||||
assert(key != NULL);
|
||||
assert(val != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_buffer_slice);
|
||||
UNUSED(heap);
|
||||
ASSERT(error != NULL);
|
||||
ASSERT(key != NULL);
|
||||
ASSERT(val != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_buffer_slice);
|
||||
|
||||
BufferSliceObject *slice = (BufferSliceObject*) self;
|
||||
|
||||
@@ -375,7 +376,7 @@ static _Bool slice_insert(Object *self, Object *key, Object *val, Heap *heap, Er
|
||||
}
|
||||
|
||||
int idx = Object_ToInt(key, error);
|
||||
assert(error->occurred == 0);
|
||||
ASSERT(error->occurred == 0);
|
||||
|
||||
if(idx < 0 || idx >= slice->length)
|
||||
{
|
||||
@@ -426,8 +427,8 @@ static void print_bytes(FILE *fp, unsigned char *addr, int size)
|
||||
low = byte & 0xf;
|
||||
high = byte >> 4;
|
||||
|
||||
assert(low < 16);
|
||||
assert(high < 16);
|
||||
ASSERT(low < 16);
|
||||
ASSERT(high < 16);
|
||||
|
||||
char c1, c2;
|
||||
|
||||
|
||||
+20
-20
@@ -28,7 +28,6 @@
|
||||
** +--------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "../utils/defs.h"
|
||||
#include "objects.h"
|
||||
@@ -64,8 +63,8 @@ static TypeObject t_list = {
|
||||
|
||||
static int hash(Object *self)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_list);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_list);
|
||||
|
||||
ListObject *ls = (ListObject*) self;
|
||||
|
||||
@@ -81,8 +80,8 @@ static int hash(Object *self)
|
||||
|
||||
static Object *copy(Object *self, Heap *heap, Error *err)
|
||||
{
|
||||
(void) heap;
|
||||
(void) err;
|
||||
UNUSED(heap);
|
||||
UNUSED(err);
|
||||
|
||||
ListObject *ls = (ListObject*) self;
|
||||
ListObject *ls2 = (ListObject*) Object_NewList(ls->count, heap, err);
|
||||
@@ -131,7 +130,7 @@ Object *Object_NewList(int capacity, Heap *heap, Error *error)
|
||||
|
||||
Object *Object_NewList2(int num, Object **items, Heap *heap, Error *error)
|
||||
{
|
||||
assert(num > -1);
|
||||
ASSERT(num > -1);
|
||||
|
||||
ListObject *list = (ListObject*) Object_NewList(num, heap, error);
|
||||
|
||||
@@ -161,11 +160,12 @@ static void walkexts(Object *self, void (*callback)(void **referer, unsigned int
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_list);
|
||||
assert(key != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(error != NULL);
|
||||
UNUSED(heap);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_list);
|
||||
ASSERT(key != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(error != NULL);
|
||||
|
||||
if(!Object_IsInt(key))
|
||||
{
|
||||
@@ -174,7 +174,7 @@ static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
}
|
||||
|
||||
int idx = Object_ToInt(key, error);
|
||||
assert(error->occurred == 0);
|
||||
ASSERT(error->occurred == 0);
|
||||
|
||||
ListObject *list = (ListObject*) self;
|
||||
|
||||
@@ -194,7 +194,7 @@ static unsigned int calc_new_capacity(unsigned int old_capacity)
|
||||
|
||||
static _Bool grow(ListObject *list, Heap *heap, Error *error)
|
||||
{
|
||||
assert(list != NULL);
|
||||
ASSERT(list != NULL);
|
||||
|
||||
int new_capacity = calc_new_capacity(list->capacity);
|
||||
|
||||
@@ -213,12 +213,12 @@ static _Bool grow(ListObject *list, Heap *heap, Error *error)
|
||||
|
||||
static _Bool insert(Object *self, Object *key, Object *val, Heap *heap, Error *error)
|
||||
{
|
||||
assert(error != NULL);
|
||||
assert(key != NULL);
|
||||
assert(val != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_list);
|
||||
ASSERT(error != NULL);
|
||||
ASSERT(key != NULL);
|
||||
ASSERT(val != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_list);
|
||||
|
||||
ListObject *list = (ListObject*) self;
|
||||
|
||||
@@ -229,7 +229,7 @@ static _Bool insert(Object *self, Object *key, Object *val, Heap *heap, Error *e
|
||||
}
|
||||
|
||||
int idx = Object_ToInt(key, error);
|
||||
assert(error->occurred == 0);
|
||||
ASSERT(error->occurred == 0);
|
||||
|
||||
if(idx < 0 || idx > list->count)
|
||||
{
|
||||
|
||||
+16
-16
@@ -28,7 +28,6 @@
|
||||
** +--------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include "../utils/defs.h"
|
||||
#include "objects.h"
|
||||
|
||||
@@ -164,7 +163,7 @@ static void walk(Object *self, void (*callback)(Object **referer, void *userp),
|
||||
|
||||
static void walkexts(Object *self, void (*callback)(void **referer, unsigned int size, void *userp), void *userp)
|
||||
{
|
||||
assert(self->type == &t_map);
|
||||
ASSERT(self->type == &t_map);
|
||||
|
||||
MapObject *map = (MapObject*) self;
|
||||
|
||||
@@ -177,11 +176,12 @@ static void walkexts(Object *self, void (*callback)(void **referer, unsigned int
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_map);
|
||||
assert(key != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(error != NULL);
|
||||
UNUSED(heap);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_map);
|
||||
ASSERT(key != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(error != NULL);
|
||||
|
||||
MapObject *map = (MapObject*) self;
|
||||
|
||||
@@ -206,7 +206,7 @@ static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
// Found an item.
|
||||
// Is it the right one?
|
||||
|
||||
assert(k >= 0);
|
||||
ASSERT(k >= 0);
|
||||
|
||||
if(Object_Compare(key, map->keys[k], error))
|
||||
// Found it!
|
||||
@@ -229,7 +229,7 @@ static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
|
||||
static _Bool grow(MapObject *map, Heap *heap, Error *error)
|
||||
{
|
||||
assert(map != NULL);
|
||||
ASSERT(map != NULL);
|
||||
|
||||
int new_mapper_size = map->mapper_size << 1;
|
||||
int new_capacity = calc_capacity(new_mapper_size);
|
||||
@@ -289,12 +289,12 @@ static _Bool grow(MapObject *map, Heap *heap, Error *error)
|
||||
|
||||
static _Bool insert(Object *self, Object *key, Object *val, Heap *heap, Error *error)
|
||||
{
|
||||
assert(error != NULL);
|
||||
assert(key != NULL);
|
||||
assert(val != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_map);
|
||||
ASSERT(error != NULL);
|
||||
ASSERT(key != NULL);
|
||||
ASSERT(val != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_map);
|
||||
|
||||
MapObject *map = (MapObject*) self;
|
||||
|
||||
@@ -328,7 +328,7 @@ static _Bool insert(Object *self, Object *key, Object *val, Heap *heap, Error *e
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(k >= 0);
|
||||
ASSERT(k >= 0);
|
||||
|
||||
if(Object_Compare(key, map->keys[k], error))
|
||||
{
|
||||
|
||||
+14
-12
@@ -28,9 +28,9 @@
|
||||
** +--------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "objects.h"
|
||||
#include "../utils/defs.h"
|
||||
|
||||
static _Bool op_eql(Object *self, Object *other);
|
||||
static void print(Object *obj, FILE *fp);
|
||||
@@ -64,37 +64,39 @@ _Bool Object_IsNone(Object *obj)
|
||||
|
||||
static int hash(Object *self)
|
||||
{
|
||||
assert(self == &the_none_object);
|
||||
UNUSED(self);
|
||||
ASSERT(self == &the_none_object);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static Object *copy(Object *self, Heap *heap, Error *err)
|
||||
{
|
||||
(void) heap;
|
||||
(void) err;
|
||||
UNUSED(heap);
|
||||
UNUSED(err);
|
||||
return self;
|
||||
}
|
||||
|
||||
Object *Object_NewNone(Heap *heap, Error *error)
|
||||
{
|
||||
(void) heap;
|
||||
(void) error;
|
||||
UNUSED(heap);
|
||||
UNUSED(error);
|
||||
return &the_none_object;
|
||||
}
|
||||
|
||||
static void print(Object *obj, FILE *fp)
|
||||
{
|
||||
assert(fp != NULL);
|
||||
assert(obj != NULL);
|
||||
assert(obj->type == &t_none);
|
||||
UNUSED(obj);
|
||||
ASSERT(fp != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
ASSERT(obj->type == &t_none);
|
||||
|
||||
fprintf(fp, "none");
|
||||
}
|
||||
|
||||
static _Bool op_eql(Object *self, Object *other)
|
||||
{
|
||||
(void) self;
|
||||
|
||||
assert(other->type == &t_none);
|
||||
UNUSED(self);
|
||||
UNUSED(other);
|
||||
ASSERT(other->type == &t_none);
|
||||
return 1;
|
||||
}
|
||||
+27
-26
@@ -29,7 +29,6 @@
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include "../utils/defs.h"
|
||||
#include "../utils/hash.h"
|
||||
#include "../utils/utf8.h"
|
||||
@@ -83,17 +82,17 @@ static int char_index_to_offset(StringObject *str, int idx)
|
||||
scanned_bytes += last_code_len;
|
||||
idx -= 1;
|
||||
|
||||
assert(scanned_bytes <= str->bytes);
|
||||
ASSERT(scanned_bytes <= str->bytes);
|
||||
}
|
||||
|
||||
assert(idx == 0);
|
||||
ASSERT(idx == 0);
|
||||
return scanned_bytes;
|
||||
}
|
||||
|
||||
static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
{
|
||||
assert(self != NULL && self->type == &t_string);
|
||||
assert(key != NULL && heap != NULL && error != NULL);
|
||||
ASSERT(self != NULL && self->type == &t_string);
|
||||
ASSERT(key != NULL && heap != NULL && error != NULL);
|
||||
|
||||
if(!Object_IsInt(key))
|
||||
{
|
||||
@@ -102,7 +101,7 @@ static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
}
|
||||
|
||||
int idx = Object_ToInt(key, error);
|
||||
assert(error->occurred == 0);
|
||||
ASSERT(error->occurred == 0);
|
||||
|
||||
StringObject *str = (StringObject*) self;
|
||||
|
||||
@@ -120,8 +119,8 @@ static Object *select(Object *self, Object *key, Heap *heap, Error *error)
|
||||
|
||||
static char *to_string(Object *self, int *size, Heap *heap, Error *err)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_string);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_string);
|
||||
|
||||
(void) heap;
|
||||
(void) err;
|
||||
@@ -141,9 +140,9 @@ TypeObject *Object_GetStringType()
|
||||
|
||||
Object *Object_FromString(const char *str, int len, Heap *heap, Error *error)
|
||||
{
|
||||
assert(str != NULL);
|
||||
assert(heap != NULL);
|
||||
assert(error != NULL);
|
||||
ASSERT(str != NULL);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(error != NULL);
|
||||
|
||||
if(len < 0)
|
||||
len = strlen(str);
|
||||
@@ -177,8 +176,8 @@ Object *Object_FromString(const char *str, int len, Heap *heap, Error *error)
|
||||
|
||||
static int count(Object *self)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_string);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_string);
|
||||
|
||||
StringObject *strobj = (StringObject*) self;
|
||||
|
||||
@@ -187,8 +186,8 @@ static int count(Object *self)
|
||||
|
||||
static int hash(Object *self)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_string);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_string);
|
||||
|
||||
StringObject *strobj = (StringObject*) self;
|
||||
|
||||
@@ -197,20 +196,22 @@ static int hash(Object *self)
|
||||
|
||||
static Object *copy(Object *self, Heap *heap, Error *err)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_string);
|
||||
assert(heap != NULL);
|
||||
assert(err != NULL);
|
||||
UNUSED(heap);
|
||||
UNUSED(err);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_string);
|
||||
ASSERT(heap != NULL);
|
||||
ASSERT(err != NULL);
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
static _Bool op_eql(Object *self, Object *other)
|
||||
{
|
||||
assert(self != NULL);
|
||||
assert(self->type == &t_string);
|
||||
assert(other != NULL);
|
||||
assert(other->type == &t_string);
|
||||
ASSERT(self != NULL);
|
||||
ASSERT(self->type == &t_string);
|
||||
ASSERT(other != NULL);
|
||||
ASSERT(other->type == &t_string);
|
||||
|
||||
StringObject *s1 = (StringObject*) self;
|
||||
StringObject *s2 = (StringObject*) other;
|
||||
@@ -222,9 +223,9 @@ static _Bool op_eql(Object *self, Object *other)
|
||||
|
||||
static void print(Object *obj, FILE *fp)
|
||||
{
|
||||
assert(fp != NULL);
|
||||
assert(obj != NULL);
|
||||
assert(obj->type == &t_string);
|
||||
ASSERT(fp != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
ASSERT(obj->type == &t_string);
|
||||
|
||||
StringObject *str = (StringObject*) obj;
|
||||
|
||||
|
||||
+68
-68
@@ -28,7 +28,6 @@
|
||||
** +--------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include "../utils/defs.h"
|
||||
#include "objects.h"
|
||||
|
||||
@@ -53,42 +52,43 @@ static _Bool op_eql(Object *self, Object *other)
|
||||
|
||||
const char *Object_GetName(const Object *obj)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
const char *name = type->name;
|
||||
assert(name);
|
||||
ASSERT(name);
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
const TypeObject *Object_GetType(const Object *obj)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
assert(obj->type != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
ASSERT(obj->type != NULL);
|
||||
return obj->type;
|
||||
}
|
||||
|
||||
unsigned int Object_GetSize(const Object *obj, Error *err)
|
||||
{
|
||||
assert(err != NULL);
|
||||
assert(obj != NULL);
|
||||
UNUSED(err);
|
||||
ASSERT(err != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
return type->size;
|
||||
}
|
||||
|
||||
unsigned int Object_GetDeepSize(const Object *obj, Error *err)
|
||||
{
|
||||
assert(err != NULL);
|
||||
assert(obj != NULL);
|
||||
ASSERT(err != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->deepsize == NULL)
|
||||
{
|
||||
@@ -101,20 +101,20 @@ unsigned int Object_GetDeepSize(const Object *obj, Error *err)
|
||||
|
||||
int Object_Hash(Object *obj)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type != NULL);
|
||||
assert(type->hash != NULL);
|
||||
ASSERT(type != NULL);
|
||||
ASSERT(type->hash != NULL);
|
||||
return type->hash(obj);
|
||||
}
|
||||
|
||||
Object *Object_Copy(Object *obj, Heap *heap, Error *err)
|
||||
{
|
||||
assert(err != NULL);
|
||||
assert(obj != NULL);
|
||||
ASSERT(err != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type != NULL);
|
||||
ASSERT(type != NULL);
|
||||
|
||||
if(type->copy == NULL)
|
||||
{
|
||||
@@ -127,10 +127,10 @@ Object *Object_Copy(Object *obj, Heap *heap, Error *err)
|
||||
|
||||
int Object_Call(Object *obj, Object **argv, unsigned int argc, Object **rets, unsigned int maxrets, Heap *heap, Error *err)
|
||||
{
|
||||
assert(err != NULL && obj != NULL);
|
||||
ASSERT(err != NULL && obj != NULL);
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->call == NULL)
|
||||
{
|
||||
@@ -143,10 +143,10 @@ int Object_Call(Object *obj, Object **argv, unsigned int argc, Object **rets, un
|
||||
|
||||
void Object_Print(Object *obj, FILE *fp)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->print == NULL)
|
||||
fprintf(fp, "<%s is unprintable>", Object_GetName(obj));
|
||||
@@ -156,12 +156,12 @@ void Object_Print(Object *obj, FILE *fp)
|
||||
|
||||
Object *Object_Select(Object *coll, Object *key, Heap *heap, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(key);
|
||||
assert(coll);
|
||||
ASSERT(err);
|
||||
ASSERT(key);
|
||||
ASSERT(coll);
|
||||
|
||||
const TypeObject *type = Object_GetType(coll);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->select == NULL)
|
||||
{
|
||||
@@ -174,12 +174,12 @@ Object *Object_Select(Object *coll, Object *key, Heap *heap, Error *err)
|
||||
|
||||
Object *Object_Delete(Object *coll, Object *key, Heap *heap, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(key);
|
||||
assert(coll);
|
||||
ASSERT(err);
|
||||
ASSERT(key);
|
||||
ASSERT(coll);
|
||||
|
||||
const TypeObject *type = Object_GetType(coll);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->delete == NULL)
|
||||
{
|
||||
@@ -192,12 +192,12 @@ Object *Object_Delete(Object *coll, Object *key, Heap *heap, Error *err)
|
||||
|
||||
_Bool Object_Insert(Object *coll, Object *key, Object *val, Heap *heap, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(key);
|
||||
assert(coll);
|
||||
ASSERT(err);
|
||||
ASSERT(key);
|
||||
ASSERT(coll);
|
||||
|
||||
const TypeObject *type = Object_GetType(coll);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->insert == NULL)
|
||||
{
|
||||
@@ -210,11 +210,11 @@ _Bool Object_Insert(Object *coll, Object *key, Object *val, Heap *heap, Error *e
|
||||
|
||||
int Object_Count(Object *coll, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(coll);
|
||||
ASSERT(err);
|
||||
ASSERT(coll);
|
||||
|
||||
const TypeObject *type = Object_GetType(coll);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->count == NULL)
|
||||
{
|
||||
@@ -227,11 +227,11 @@ int Object_Count(Object *coll, Error *err)
|
||||
|
||||
Object *Object_Next(Object *iter, Heap *heap, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(iter);
|
||||
ASSERT(err);
|
||||
ASSERT(iter);
|
||||
|
||||
const TypeObject *type = Object_GetType(iter);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->next == NULL)
|
||||
{
|
||||
@@ -244,11 +244,11 @@ Object *Object_Next(Object *iter, Heap *heap, Error *err)
|
||||
|
||||
Object *Object_Prev(Object *iter, Heap *heap, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(iter);
|
||||
ASSERT(err);
|
||||
ASSERT(iter);
|
||||
|
||||
const TypeObject *type = Object_GetType(iter);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->prev == NULL)
|
||||
{
|
||||
@@ -261,36 +261,36 @@ Object *Object_Prev(Object *iter, Heap *heap, Error *err)
|
||||
|
||||
_Bool Object_IsInt(Object *obj)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
assert(obj->type != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
ASSERT(obj->type != NULL);
|
||||
return obj->type->atomic == ATMTP_INT;
|
||||
}
|
||||
|
||||
_Bool Object_IsBool(Object *obj)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
assert(obj->type != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
ASSERT(obj->type != NULL);
|
||||
return obj->type->atomic == ATMTP_BOOL;
|
||||
}
|
||||
|
||||
_Bool Object_IsFloat(Object *obj)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
assert(obj->type != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
ASSERT(obj->type != NULL);
|
||||
return obj->type->atomic == ATMTP_FLOAT;
|
||||
}
|
||||
|
||||
_Bool Object_IsString(Object *obj)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
assert(obj->type != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
ASSERT(obj->type != NULL);
|
||||
return obj->type->atomic == ATMTP_STRING;
|
||||
}
|
||||
|
||||
long long int Object_ToInt(Object *obj, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(obj);
|
||||
ASSERT(err);
|
||||
ASSERT(obj);
|
||||
|
||||
if(!Object_IsInt(obj))
|
||||
{
|
||||
@@ -299,7 +299,7 @@ long long int Object_ToInt(Object *obj, Error *err)
|
||||
}
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->to_int == NULL)
|
||||
{
|
||||
@@ -312,8 +312,8 @@ long long int Object_ToInt(Object *obj, Error *err)
|
||||
|
||||
_Bool Object_ToBool(Object *obj, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(obj);
|
||||
ASSERT(err);
|
||||
ASSERT(obj);
|
||||
|
||||
if(!Object_IsBool(obj))
|
||||
{
|
||||
@@ -322,7 +322,7 @@ _Bool Object_ToBool(Object *obj, Error *err)
|
||||
}
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->to_bool == NULL)
|
||||
{
|
||||
@@ -335,8 +335,8 @@ _Bool Object_ToBool(Object *obj, Error *err)
|
||||
|
||||
double Object_ToFloat(Object *obj, Error *err)
|
||||
{
|
||||
assert(err);
|
||||
assert(obj);
|
||||
ASSERT(err);
|
||||
ASSERT(obj);
|
||||
|
||||
if(!Object_IsFloat(obj))
|
||||
{
|
||||
@@ -345,7 +345,7 @@ double Object_ToFloat(Object *obj, Error *err)
|
||||
}
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->to_float == NULL)
|
||||
{
|
||||
@@ -358,8 +358,8 @@ double Object_ToFloat(Object *obj, Error *err)
|
||||
|
||||
const char *Object_ToString(Object *obj, int *size, Heap *heap, Error *err)
|
||||
{
|
||||
assert(err != NULL);
|
||||
assert(obj != NULL);
|
||||
ASSERT(err != NULL);
|
||||
ASSERT(obj != NULL);
|
||||
|
||||
if(!Object_IsString(obj))
|
||||
{
|
||||
@@ -368,7 +368,7 @@ const char *Object_ToString(Object *obj, int *size, Heap *heap, Error *err)
|
||||
}
|
||||
|
||||
const TypeObject *type = Object_GetType(obj);
|
||||
assert(type);
|
||||
ASSERT(type);
|
||||
|
||||
if(type->to_string == NULL)
|
||||
{
|
||||
@@ -381,9 +381,9 @@ const char *Object_ToString(Object *obj, int *size, Heap *heap, Error *err)
|
||||
|
||||
_Bool Object_Compare(Object *obj1, Object *obj2, Error *error)
|
||||
{
|
||||
assert(obj1 != NULL);
|
||||
assert(obj2 != NULL);
|
||||
assert(error != NULL);
|
||||
ASSERT(obj1 != NULL);
|
||||
ASSERT(obj2 != NULL);
|
||||
ASSERT(error != NULL);
|
||||
|
||||
if(obj1->type != obj2->type)
|
||||
return 0;
|
||||
@@ -399,14 +399,14 @@ _Bool Object_Compare(Object *obj1, Object *obj2, Error *error)
|
||||
|
||||
void Object_WalkReferences(Object *parent, void (*callback)(Object **referer, void *userp), void *userp)
|
||||
{
|
||||
assert(parent != NULL);
|
||||
ASSERT(parent != NULL);
|
||||
if(parent->type->walk != NULL)
|
||||
parent->type->walk(parent, callback, userp);
|
||||
}
|
||||
|
||||
void Object_WalkExtensions(Object *parent, void (*callback)(void **referer, unsigned int size, void *userp), void *userp)
|
||||
{
|
||||
assert(parent != NULL);
|
||||
ASSERT(parent != NULL);
|
||||
if(parent->type->walkexts != NULL)
|
||||
parent->type->walkexts(parent, callback, userp);
|
||||
}
|
||||
Reference in New Issue
Block a user