+2010-09-26 Kai Tietz <kai.tietz@onevision.com>
+
+ * sendmsg.c (get_imp): Remove inline.
+ (objc_msg_lookup): Likewise.
+ (objc_get_uninstalled_dtable): Likewise.
+ * encoding.c (objc_skip_type_qualifiers): Likewise.
+ (objc_skip_offset): Likewise.
+ * archive.c (__objc_write_object): Likewise
+ (__objc_write_class):
+ (__objc_write_selector):
+ (objc_read_char):
+ (objc_read_unsigned_char):
+ (objc_read_short):
+ (objc_read_unsigned_short):
+ (objc_read_int):
+ (objc_read_long):
+ (__objc_read_nbyte_uint):
+ (objc_read_unsigned_int):
+ (objc_read_unsigned_long):
+ * objc/objc-decls.h (obc_EXPORT): Remove dllexport for DLL_EXPORT case.
+ (objc_EXPORT): Likewise.
+ * objc/message.h (objc-decls.h): Add include.
+ * objc/objc-api.h: Mark API by objc_EXPORT.
+ * libobjc.def (__objc_responds_to): Removed.
+
2010-09-18 Nicola Pero <nicola.pero@meta-innovation.com>
* hash.c: Include objc-private/hash.h instead of objc/hash.h.
}
}
-inline int
+int
__objc_write_object (struct objc_typed_stream *stream, id object)
{
unsigned char buf = '\0';
}
}
-inline int
+int
__objc_write_class (struct objc_typed_stream *stream, struct objc_class *class)
{
__objc_write_extension (stream, _BX_CLASS);
}
-inline int
+int
__objc_write_selector (struct objc_typed_stream *stream, SEL selector)
{
const char *sel_name;
** Read operations
*/
-inline int
+int
objc_read_char (struct objc_typed_stream *stream, char *val)
{
unsigned char buf;
}
-inline int
+int
objc_read_unsigned_char (struct objc_typed_stream *stream, unsigned char *val)
{
unsigned char buf;
return len;
}
-inline int
+int
objc_read_short (struct objc_typed_stream *stream, short *value)
{
unsigned char buf[sizeof (short) + 1];
return len;
}
-inline int
+int
objc_read_unsigned_short (struct objc_typed_stream *stream,
unsigned short *value)
{
}
-inline int
+int
objc_read_int (struct objc_typed_stream *stream, int *value)
{
unsigned char buf[sizeof (int) + 1];
return len;
}
-inline int
+int
objc_read_long (struct objc_typed_stream *stream, long *value)
{
unsigned char buf[sizeof (long) + 1];
return len;
}
-inline int
+int
__objc_read_nbyte_uint (struct objc_typed_stream *stream,
unsigned int nbytes, unsigned int *val)
{
}
-inline int
+int
objc_read_unsigned_int (struct objc_typed_stream *stream,
unsigned int *value)
{
}
-inline int
+int
objc_read_unsigned_long (struct objc_typed_stream *stream,
unsigned long *value)
{
return len;
}
-inline int
+int
objc_read_string (struct objc_typed_stream *stream,
char **string)
{
occurring in method prototype encodings.
*/
-inline const char *
+const char *
objc_skip_type_qualifiers (const char *type)
{
while (*type == _C_CONST
Skip an offset as part of a method encoding. This is prepended by a
'+' if the argument is passed in registers.
*/
-inline const char *
+const char *
objc_skip_offset (const char *type)
{
if (*type == '+')
__objc_init_dispatch_tables
__objc_install_premature_dtable
__objc_print_dtable_stats
-__objc_responds_to
__objc_update_dispatch_table_for_class
class_add_method_list
class_get_class_method
#endif
#include "objc.h"
+#include "objc-decls.h"
/* This file includes declarations of the messaging functions and types. */
char arg_regs[sizeof (char*)];
} *arglist_t; /* argument frame */
-IMP objc_msg_lookup(id receiver, SEL op);
+objc_EXPORT IMP objc_msg_lookup(id receiver, SEL op);
/* TODO: Add the remaining messaging declarations from objc-api.h. */
#endif
} Super, *Super_t;
-IMP objc_msg_lookup_super(Super_t super, SEL sel);
+objc_EXPORT IMP objc_msg_lookup_super(Super_t super, SEL sel);
-retval_t objc_msg_sendv(id, SEL, arglist_t);
+objc_EXPORT retval_t objc_msg_sendv(id, SEL, arglist_t);
use these functions in their ObjC programs so that they work so that
they work properly with garbage collectors.
*/
-void *
+objc_EXPORT void *
objc_malloc(size_t size);
/* FIXME: Shouldn't the following be called objc_malloc_atomic ? The
GC function is GC_malloc_atomic() which makes sense.
*/
-void *
+objc_EXPORT void *
objc_atomic_malloc(size_t size);
-void *
+objc_EXPORT void *
objc_realloc(void *mem, size_t size);
-void *
+objc_EXPORT void *
objc_calloc(size_t nelem, size_t size);
-void
+objc_EXPORT void
objc_free(void *mem);
#include "deprecated/objc_valloc.h"
#include "deprecated/objc_unexpected_exception.h"
-Method_t class_get_class_method(MetaClass _class, SEL aSel);
+objc_EXPORT Method_t class_get_class_method(MetaClass _class, SEL aSel);
-Method_t class_get_instance_method(Class _class, SEL aSel);
+objc_EXPORT Method_t class_get_instance_method(Class _class, SEL aSel);
-Class class_pose_as(Class impostor, Class superclass);
+objc_EXPORT Class class_pose_as(Class impostor, Class superclass);
-Class objc_get_class(const char *name);
+objc_EXPORT Class objc_get_class(const char *name);
-Class objc_lookup_class(const char *name);
+objc_EXPORT Class objc_lookup_class(const char *name);
-Class objc_next_class(void **enum_state);
+objc_EXPORT Class objc_next_class(void **enum_state);
-const char *sel_get_name(SEL selector);
+objc_EXPORT const char *sel_get_name(SEL selector);
-const char *sel_get_type(SEL selector);
+objc_EXPORT const char *sel_get_type(SEL selector);
-SEL sel_get_uid(const char *name);
+objc_EXPORT SEL sel_get_uid(const char *name);
-SEL sel_get_any_uid(const char *name);
+objc_EXPORT SEL sel_get_any_uid(const char *name);
-SEL sel_get_any_typed_uid(const char *name);
+objc_EXPORT SEL sel_get_any_typed_uid(const char *name);
-SEL sel_get_typed_uid(const char *name, const char*);
+objc_EXPORT SEL sel_get_typed_uid(const char *name, const char*);
-SEL sel_register_name(const char *name);
+objc_EXPORT SEL sel_register_name(const char *name);
-SEL sel_register_typed_name(const char *name, const char*type);
+objc_EXPORT SEL sel_register_typed_name(const char *name, const char*type);
-BOOL sel_is_mapped (SEL aSel);
+objc_EXPORT BOOL sel_is_mapped (SEL aSel);
extern id class_create_instance(Class _class);
return (method!=METHOD_NULL)?method->method_imp:(IMP)0;
}
-IMP get_imp (Class _class, SEL sel);
+objc_EXPORT IMP get_imp (Class _class, SEL sel);
-id object_copy(id object);
+objc_EXPORT id object_copy(id object);
-id object_dispose(id object);
+objc_EXPORT id object_dispose(id object);
static inline Class
object_get_class(id object)
&& !object_is_class (object));
}
-struct sarray*
+objc_EXPORT struct sarray*
objc_get_uninstalled_dtable(void);
#ifdef __cplusplus
#if defined (_WIN32) || defined (__WIN32__) || defined (WIN32)
# ifdef DLL_EXPORT /* defined by libtool (if required) */
-# define objc_EXPORT __declspec(dllexport)
-# define objc_DECLARE __declspec(dllexport)
+# define objc_EXPORT
+# define objc_DECLARE
#else
# define objc_EXPORT extern __declspec(dllimport)
# define objc_DECLARE extern __declspec(dllimport)
}
/* Given a class and selector, return the selector's implementation. */
-inline
+
IMP
get_imp (Class class, SEL sel)
{
/* This is the lookup function. All entries in the table are either a
valid method *or* zero. If zero then either the dispatch table
needs to be installed or it doesn't exist and forwarding is attempted. */
-inline
+
IMP
objc_msg_lookup (id receiver, SEL op)
{
/* Returns the uninstalled dispatch table indicator.
If a class' dispatch table points to __objc_uninstalled_dtable
then that means it needs its dispatch table to be installed. */
-inline
+
struct sarray *
objc_get_uninstalled_dtable ()
{