X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fobject-internals.h;h=6041aa1ae648969e0cf4377647a4c3286b5c9a04;hb=438e3b5ac335f69a620d2db738626fca1d0c2980;hp=e3caae5927a9796b6a9785bb598dfa8e181dfe86;hpb=44bccacc1298ec1c5d6225d560094def47044c4f;p=mono.git diff --git a/mono/metadata/object-internals.h b/mono/metadata/object-internals.h index e3caae5927a..6041aa1ae64 100644 --- a/mono/metadata/object-internals.h +++ b/mono/metadata/object-internals.h @@ -87,8 +87,8 @@ return retval; \ }; }G_STMT_END -/* 16 == default capacity */ -#define mono_stringbuilder_capacity(sb) ((sb)->str ? ((sb)->str->length) : 16) +#define mono_string_builder_capacity(sb) sb->chunkOffset + sb->chunkChars->max_length +#define mono_string_builder_string_length(sb) sb->chunkOffset + sb->chunkLength /* * Macros which cache the results of lookups locally. @@ -210,13 +210,16 @@ struct _MonoAppDomain { MonoDomain *data; }; -typedef struct { +typedef struct _MonoStringBuilder MonoStringBuilder; + +struct _MonoStringBuilder { MonoObject object; - gint32 length; - MonoString *str; - MonoString *cached_str; - gint32 max_capacity; -} MonoStringBuilder; + MonoArray *chunkChars; + MonoStringBuilder* chunkPrevious; // Link to the block logically before this block + int chunkLength; // The index in ChunkChars that represent the end of the block + int chunkOffset; // The logial offset (sum of all characters in previous blocks) + int maxCapacity; +}; typedef struct { MonoType *type; @@ -360,6 +363,7 @@ typedef struct { gint32 il_offset; gint32 native_offset; gint64 method_address; + gint32 method_index; MonoReflectionMethod *method; MonoString *filename; gint32 line; @@ -386,7 +390,7 @@ struct _MonoInternalThread { HANDLE start_notify; gpointer stack_ptr; gpointer *static_data; - gpointer jit_data; + gpointer dead_field_remove_me; /* This used to be jit_data, but that was moved to MonoThreadInfo. */ void *thread_info; /*This is MonoThreadInfo*, but to simplify dependencies, let's make it a void* here. */ MonoAppContext *current_appcontext; MonoException *pending_exception;