cinera: Remove memory_book_type
This commit is contained in:
parent
9cdb3b96d9
commit
63ab9d5bc2
214
cinera/cinera.c
214
cinera/cinera.c
|
@ -23,7 +23,7 @@ typedef struct
|
|||
version CINERA_APP_VERSION = {
|
||||
.Major = 0,
|
||||
.Minor = 8,
|
||||
.Patch = 13
|
||||
.Patch = 15
|
||||
};
|
||||
|
||||
#include <stdarg.h> // NOTE(matt): varargs
|
||||
|
@ -492,50 +492,6 @@ typedef struct memory_pen_location
|
|||
struct memory_pen_location *Next;
|
||||
} memory_pen_location;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MBT_NONE,
|
||||
|
||||
MBT_ASSET,
|
||||
MBT_CATEGORY_INFO,
|
||||
MBT_CONFIG_IDENTIFIER_ID,
|
||||
MBT_CONFIG_BOOL_PAIR,
|
||||
MBT_CONFIG_INT_PAIR,
|
||||
MBT_CONFIG_PAIR,
|
||||
MBT_CONFIG_STRING_ASSOCIATION,
|
||||
MBT_CONFIG_TYPE_FIELD,
|
||||
MBT_CONFIG_TYPE_SPEC,
|
||||
MBT_CREDIT,
|
||||
MBT_IDENTIFIER,
|
||||
MBT_LANDMARK,
|
||||
MBT_MEDIUM,
|
||||
MBT_NAVIGATION_BUFFER,
|
||||
MBT_PERSON,
|
||||
MBT_PERSON_PTR,
|
||||
MBT_PROJECT,
|
||||
MBT_PROJECT_PTR,
|
||||
MBT_REF_INFO,
|
||||
MBT_RESOLUTION_ERROR,
|
||||
MBT_ROLE,
|
||||
MBT_SCOPE_TREE,
|
||||
MBT_SCOPE_TREE_PTR,
|
||||
MBT_SPEAKER,
|
||||
MBT_STRING,
|
||||
MBT_STRING_PTR,
|
||||
MBT_SUPPORT,
|
||||
MBT_TAG_OFFSET,
|
||||
MBT_TOKEN,
|
||||
MBT_TOKENS,
|
||||
MBT_UINT32,
|
||||
MBT_VARIANT,
|
||||
MBT_VARIANT_STRING,
|
||||
MBT_WATCH_FILE,
|
||||
MBT_WATCH_HANDLE,
|
||||
MBT_COUNT,
|
||||
} memory_book_type;
|
||||
|
||||
uint64_t MemoryBookTypeWidths[MBT_COUNT];
|
||||
|
||||
// TODO(matt): We probably want our memory_book to be able to support strings that span multiple pages
|
||||
// SearchQuotes() especially could benefit from this
|
||||
|
||||
|
@ -547,28 +503,23 @@ typedef struct
|
|||
uint64_t ItemCount;
|
||||
memory_page *Pages;
|
||||
memory_pen_location *Pen;
|
||||
memory_book_type Type;
|
||||
} memory_book;
|
||||
#define _memory_book(type) memory_book
|
||||
|
||||
memory_book
|
||||
InitBook(memory_book_type Type, uint64_t ItemsPerPage)
|
||||
InitBook(uint64_t DataWidthInBytes, uint64_t ItemsPerPage)
|
||||
{
|
||||
Assert(MemoryBookTypeWidths[Type]);
|
||||
|
||||
memory_book Result = {};
|
||||
Result.PageSize = ItemsPerPage * MemoryBookTypeWidths[Type];
|
||||
Result.Type = Type;
|
||||
Result.DataWidthInBytes = MemoryBookTypeWidths[Type];
|
||||
Result.PageSize = ItemsPerPage * DataWidthInBytes;
|
||||
Result.DataWidthInBytes = DataWidthInBytes;
|
||||
return Result;
|
||||
}
|
||||
|
||||
memory_book
|
||||
InitBookOfPointers(memory_book_type Type, uint64_t ItemsPerPage)
|
||||
InitBookOfPointers(uint64_t ItemsPerPage)
|
||||
{
|
||||
memory_book Result = {};
|
||||
Result.PageSize = ItemsPerPage * sizeof(uintptr_t);
|
||||
Result.Type = Type;
|
||||
Result.DataWidthInBytes = sizeof(uintptr_t);
|
||||
return Result;
|
||||
}
|
||||
|
@ -578,7 +529,6 @@ InitBookOfStrings(uint64_t PageSizeInBytes)
|
|||
{
|
||||
memory_book Result = {};
|
||||
Result.PageSize = PageSizeInBytes;
|
||||
Result.Type = MBT_STRING;
|
||||
Result.DataWidthInBytes = 1;
|
||||
return Result;
|
||||
}
|
||||
|
@ -609,15 +559,12 @@ FreeBook(memory_book *M)
|
|||
}
|
||||
FreeAndResetCount(M->Pages, M->PageCount);
|
||||
|
||||
if(M->Type == MBT_STRING)
|
||||
memory_pen_location *This = M->Pen;
|
||||
while(This)
|
||||
{
|
||||
memory_pen_location *This = M->Pen;
|
||||
while(This)
|
||||
{
|
||||
M->Pen = M->Pen->Prev;
|
||||
Free(This);
|
||||
This = M->Pen;
|
||||
}
|
||||
M->Pen = M->Pen->Prev;
|
||||
Free(This);
|
||||
This = M->Pen;
|
||||
}
|
||||
|
||||
memory_book Zero = {};
|
||||
|
@ -629,13 +576,11 @@ FreeAndReinitialiseBook(memory_book *M)
|
|||
{
|
||||
int PageSize = M->PageSize;
|
||||
int DataWidthInBytes = M->DataWidthInBytes;
|
||||
int Type = M->Type;
|
||||
|
||||
FreeBook(M);
|
||||
|
||||
M->PageSize = PageSize;
|
||||
M->DataWidthInBytes = DataWidthInBytes;
|
||||
M->Type = Type;
|
||||
}
|
||||
|
||||
memory_page *
|
||||
|
@ -810,53 +755,11 @@ PrintPage(memory_page *P)
|
|||
}
|
||||
|
||||
void
|
||||
PrintBook(memory_book *M)
|
||||
PrintBookOfStrings(memory_book *M)
|
||||
{
|
||||
switch(M->Type)
|
||||
for(int i = 0; i < M->PageCount; ++i)
|
||||
{
|
||||
case MBT_STRING:
|
||||
{
|
||||
for(int i = 0; i < M->PageCount; ++i)
|
||||
{
|
||||
PrintPage(&M->Pages[i]);
|
||||
}
|
||||
} break;
|
||||
case MBT_NONE: Assert(0); break;
|
||||
case MBT_ASSET: Assert(0); break;
|
||||
case MBT_CATEGORY_INFO: Assert(0); break;
|
||||
case MBT_CONFIG_IDENTIFIER_ID: Assert(0); break;
|
||||
case MBT_CONFIG_BOOL_PAIR: Assert(0); break;
|
||||
case MBT_CONFIG_INT_PAIR: Assert(0); break;
|
||||
case MBT_CONFIG_PAIR: Assert(0); break;
|
||||
case MBT_CONFIG_STRING_ASSOCIATION: Assert(0); break;
|
||||
case MBT_CONFIG_TYPE_FIELD: Assert(0); break;
|
||||
case MBT_CONFIG_TYPE_SPEC: Assert(0); break;
|
||||
case MBT_CREDIT: Assert(0); break;
|
||||
case MBT_IDENTIFIER: Assert(0); break;
|
||||
case MBT_LANDMARK: Assert(0); break;
|
||||
case MBT_MEDIUM: Assert(0); break;
|
||||
case MBT_NAVIGATION_BUFFER: Assert(0); break;
|
||||
case MBT_PERSON: Assert(0); break;
|
||||
case MBT_PERSON_PTR: Assert(0); break;
|
||||
case MBT_PROJECT: Assert(0); break;
|
||||
case MBT_PROJECT_PTR: Assert(0); break;
|
||||
case MBT_REF_INFO: Assert(0); break;
|
||||
case MBT_RESOLUTION_ERROR: Assert(0); break;
|
||||
case MBT_ROLE: Assert(0); break;
|
||||
case MBT_SCOPE_TREE: Assert(0); break;
|
||||
case MBT_SCOPE_TREE_PTR: Assert(0); break;
|
||||
case MBT_SPEAKER: Assert(0); break;
|
||||
case MBT_STRING_PTR: Assert(0); break;
|
||||
case MBT_SUPPORT: Assert(0); break;
|
||||
case MBT_TAG_OFFSET: Assert(0); break;
|
||||
case MBT_TOKEN: Assert(0); break;
|
||||
case MBT_TOKENS: Assert(0); break;
|
||||
case MBT_UINT32: Assert(0); break;
|
||||
case MBT_VARIANT: Assert(0); break;
|
||||
case MBT_VARIANT_STRING: Assert(0); break;
|
||||
case MBT_WATCH_FILE: Assert(0); break;
|
||||
case MBT_WATCH_HANDLE: Assert(0); break;
|
||||
case MBT_COUNT: break;
|
||||
PrintPage(&M->Pages[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4239,8 +4142,8 @@ InitTemplate(template *Template, string Location, template_type Type)
|
|||
fprintf(stderr, "%sPacking%s template: %s\n", ColourStrings[CS_ONGOING], ColourStrings[CS_END], Template->File.Path);
|
||||
ReadFileIntoBuffer(&Template->File);
|
||||
ClearTemplateMetadata(Template);
|
||||
Template->Metadata.Tags = InitBook(MBT_TAG_OFFSET, 16);
|
||||
Template->Metadata.NavBuffer = InitBook(MBT_NAVIGATION_BUFFER, 4);
|
||||
Template->Metadata.Tags = InitBook(sizeof(tag_offset), 16);
|
||||
Template->Metadata.NavBuffer = InitBook(sizeof(navigation_buffer), 4);
|
||||
}
|
||||
|
||||
#define SECONDS_PER_HOUR 3600
|
||||
|
@ -5640,7 +5543,7 @@ PushWatchHandle(string Path, extension_id Extension, watch_type Type, project *P
|
|||
if(!Watch)
|
||||
{
|
||||
Watch = MakeSpaceInBook(&WatchHandles.Handles);
|
||||
Watch->Files = InitBook(MBT_WATCH_FILE, 16);
|
||||
Watch->Files = InitBook(sizeof(watch_file), 16);
|
||||
|
||||
Watch->TargetPath = TargetPath;
|
||||
Watch->WatchedPath = GetNearestExistingPath(TargetPath);
|
||||
|
@ -6021,8 +5924,8 @@ PlaceAsset(string Filename, asset_type Type, uint64_t Variants, bool Associated,
|
|||
This->FilenameAt = FinalPathComponentPosition(Filename);
|
||||
if(Position == Assets.ItemCount && !This->Known)
|
||||
{
|
||||
This->Player = InitBook(MBT_LANDMARK, 8);
|
||||
This->Search = InitBook(MBT_LANDMARK, 8);
|
||||
This->Player = InitBook(sizeof(landmark), 8);
|
||||
This->Search = InitBook(sizeof(landmark), 8);
|
||||
++Assets.ItemCount;
|
||||
}
|
||||
|
||||
|
@ -6105,7 +6008,7 @@ InitBuiltinAssets(void)
|
|||
void
|
||||
InitAssets(void)
|
||||
{
|
||||
Assets = InitBook(MBT_ASSET, 16);
|
||||
Assets = InitBook(sizeof(asset), 16);
|
||||
InitBuiltinAssets();
|
||||
db_block_assets *AssetsBlock = LocateBlock(B_ASET);
|
||||
if(AssetsBlock)
|
||||
|
@ -6957,7 +6860,7 @@ BuildCredits(string HMMLFilepath, buffer *CreditsMenu, HMML_VideoMetaData *Metad
|
|||
speakers *Speakers, bool *RequiresCineraJS)
|
||||
{
|
||||
#if(HMMLIB_MAJOR_VERSION == 2)
|
||||
memory_book Credits = InitBook(MBT_CREDIT, 4);
|
||||
memory_book Credits = InitBook(sizeof(credit), 4);
|
||||
MergeCredits(&Credits, CurrentProject, Metadata);
|
||||
for(int RoleIndex = 0; RoleIndex < Config->Role.ItemCount; ++RoleIndex)
|
||||
{
|
||||
|
@ -9508,7 +9411,7 @@ speakers
|
|||
InitSpeakers()
|
||||
{
|
||||
speakers Result = {};
|
||||
Result.Speakers = InitBook(MBT_SPEAKER, 4);
|
||||
Result.Speakers = InitBook(sizeof(speaker), 4);
|
||||
Result.Abbreviations = InitBookOfStrings(64);
|
||||
return Result;
|
||||
}
|
||||
|
@ -9577,7 +9480,7 @@ BuildReference(memory_book *Strings, _memory_book(ref_info) *ReferencesArray, HM
|
|||
if(ID)
|
||||
{
|
||||
ref_info *This = MakeSpaceInBook(ReferencesArray);
|
||||
This->Identifier = InitBook(MBT_IDENTIFIER, 4);
|
||||
This->Identifier = InitBook(sizeof(identifier), 4);
|
||||
// TODO(matt): Just point into the Ref directly, rather than copying strings?
|
||||
if(Ref->isbn)
|
||||
{
|
||||
|
@ -9792,8 +9695,8 @@ ProcessTimestamp(buffers *CollationBuffers, neighbourhood *N, string Filepath, m
|
|||
*PreviousTimecode = Timestamp->time;
|
||||
#endif
|
||||
|
||||
memory_book LocalTopics = InitBook(MBT_CATEGORY_INFO, 8);
|
||||
memory_book LocalMedia = InitBook(MBT_CATEGORY_INFO, 8);
|
||||
memory_book LocalTopics = InitBook(sizeof(category_info), 8);
|
||||
memory_book LocalMedia = InitBook(sizeof(category_info), 8);
|
||||
|
||||
quote_info QuoteInfo = { };
|
||||
|
||||
|
@ -10612,10 +10515,10 @@ HMMLToBuffers(buffers *CollationBuffers, template *BespokeTemplate, string BaseF
|
|||
if(ClaimMenuIndexAndPlayerBuffers(&MenuBuffers, &IndexBuffers, &PlayerBuffers) == RC_SUCCESS)
|
||||
{
|
||||
memory_book Strings = InitBookOfStrings(Kilobytes(4));
|
||||
_memory_book(ref_info) ReferencesArray = InitBook(MBT_REF_INFO, 8);
|
||||
_memory_book(ref_info) ReferencesArray = InitBook(sizeof(ref_info), 8);
|
||||
speakers Speakers = InitSpeakers();
|
||||
memory_book Topics = InitBook(MBT_CATEGORY_INFO, 8);
|
||||
memory_book Media = InitBook(MBT_CATEGORY_INFO, 8);
|
||||
memory_book Topics = InitBook(sizeof(category_info), 8);
|
||||
memory_book Media = InitBook(sizeof(category_info), 8);
|
||||
|
||||
bool HasQuoteMenu = FALSE;
|
||||
bool HasReferenceMenu = FALSE;
|
||||
|
@ -13851,7 +13754,7 @@ PushUniqueString(memory_book *UniqueThemes, string *GlobalTheme)
|
|||
void
|
||||
GenerateThemeLinks(buffer *IncludesSearch, project *P)
|
||||
{
|
||||
memory_book UniqueThemes = InitBookOfPointers(MBT_STRING_PTR, 4);
|
||||
memory_book UniqueThemes = InitBookOfPointers(4);
|
||||
if(P)
|
||||
{
|
||||
PushUniqueStringsRecursively(&UniqueThemes, P);
|
||||
|
@ -15071,7 +14974,7 @@ project_generations
|
|||
CopyAccumulator(project_generations *G)
|
||||
{
|
||||
project_generations Result = {};
|
||||
Result.EntriesInGeneration = InitBook(MBT_UINT32, 4);
|
||||
Result.EntriesInGeneration = InitBook(sizeof(uint32_t), 4);
|
||||
for(int i = 0; i < G->EntriesInGeneration.ItemCount; ++i)
|
||||
{
|
||||
uint32_t *Src = GetPlaceInBook(&G->EntriesInGeneration, i);
|
||||
|
@ -15085,7 +14988,7 @@ project_generations
|
|||
InitAccumulator(project_generations *G)
|
||||
{
|
||||
project_generations Result = {};
|
||||
Result.EntriesInGeneration = InitBook(MBT_UINT32, 4);
|
||||
Result.EntriesInGeneration = InitBook(sizeof(uint32_t), 4);
|
||||
for(int i = 0; i < G->CurrentGeneration; ++i)
|
||||
{
|
||||
MakeSpaceInBook(&Result.EntriesInGeneration);
|
||||
|
@ -15990,7 +15893,7 @@ SyncDB(config *C)
|
|||
//
|
||||
DB.Metadata.Signposts.ProjectsBlock.Ptr = LocateBlock(B_PROJ);
|
||||
project_generations Accumulator = {};
|
||||
Accumulator.EntriesInGeneration = InitBook(MBT_UINT32, 4);
|
||||
Accumulator.EntriesInGeneration = InitBook(sizeof(uint32_t), 4);
|
||||
|
||||
db_block_projects *SParent = DB.Metadata.Signposts.ProjectsBlock.Ptr;
|
||||
|
||||
|
@ -16655,59 +16558,10 @@ void
|
|||
InitWatchHandles(uint32_t DefaultEventsMask, uint64_t DesiredPageSize)
|
||||
{
|
||||
WatchHandles.DefaultEventsMask = DefaultEventsMask;
|
||||
WatchHandles.Handles = InitBook(MBT_WATCH_HANDLE, 16);
|
||||
WatchHandles.Handles = InitBook(sizeof(watch_handle), 16);
|
||||
WatchHandles.Paths = InitBookOfStrings(DesiredPageSize);
|
||||
}
|
||||
|
||||
void
|
||||
InitMemoryBookTypeWidths(void)
|
||||
{
|
||||
for(memory_book_type i = 0; i < MBT_COUNT; ++i)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case MBT_ASSET: MemoryBookTypeWidths[i] = sizeof(asset); break;
|
||||
case MBT_CATEGORY_INFO: MemoryBookTypeWidths[i] = sizeof(category_info); break;
|
||||
case MBT_CONFIG_IDENTIFIER_ID: MemoryBookTypeWidths[i] = sizeof(config_identifier_id); break;
|
||||
case MBT_CONFIG_BOOL_PAIR: MemoryBookTypeWidths[i] = sizeof(config_bool_pair); break;
|
||||
case MBT_CONFIG_INT_PAIR: MemoryBookTypeWidths[i] = sizeof(config_int_pair); break;
|
||||
case MBT_CONFIG_PAIR: MemoryBookTypeWidths[i] = sizeof(config_pair); break;
|
||||
case MBT_CONFIG_STRING_ASSOCIATION: MemoryBookTypeWidths[i] = sizeof(config_string_association); break;
|
||||
case MBT_CONFIG_TYPE_FIELD: MemoryBookTypeWidths[i] = sizeof(config_type_field); break;
|
||||
case MBT_CONFIG_TYPE_SPEC: MemoryBookTypeWidths[i] = sizeof(config_type_spec); break;
|
||||
case MBT_CREDIT: MemoryBookTypeWidths[i] = sizeof(credit); break;
|
||||
case MBT_IDENTIFIER: MemoryBookTypeWidths[i] = sizeof(identifier); break;
|
||||
case MBT_LANDMARK: MemoryBookTypeWidths[i] = sizeof(landmark); break;
|
||||
case MBT_MEDIUM: MemoryBookTypeWidths[i] = sizeof(medium); break;
|
||||
case MBT_NAVIGATION_BUFFER: MemoryBookTypeWidths[i] = sizeof(navigation_buffer); break;
|
||||
case MBT_PERSON: MemoryBookTypeWidths[i] = sizeof(person); break;
|
||||
case MBT_PROJECT: MemoryBookTypeWidths[i] = sizeof(project); break;
|
||||
case MBT_REF_INFO: MemoryBookTypeWidths[i] = sizeof(ref_info); break;
|
||||
case MBT_RESOLUTION_ERROR: MemoryBookTypeWidths[i] = sizeof(resolution_error); break;
|
||||
case MBT_ROLE: MemoryBookTypeWidths[i] = sizeof(role); break;
|
||||
case MBT_SCOPE_TREE: MemoryBookTypeWidths[i] = sizeof(scope_tree); break;
|
||||
case MBT_SPEAKER: MemoryBookTypeWidths[i] = sizeof(speaker); break;
|
||||
case MBT_SUPPORT: MemoryBookTypeWidths[i] = sizeof(support); break;
|
||||
case MBT_TAG_OFFSET: MemoryBookTypeWidths[i] = sizeof(tag_offset); break;
|
||||
case MBT_TOKEN: MemoryBookTypeWidths[i] = sizeof(token); break;
|
||||
case MBT_TOKENS: MemoryBookTypeWidths[i] = sizeof(tokens); break;
|
||||
case MBT_UINT32: MemoryBookTypeWidths[i] = sizeof(uint32_t); break;
|
||||
case MBT_VARIANT: MemoryBookTypeWidths[i] = sizeof(variant); break;
|
||||
case MBT_VARIANT_STRING: MemoryBookTypeWidths[i] = sizeof(variant_string); break;
|
||||
case MBT_WATCH_FILE: MemoryBookTypeWidths[i] = sizeof(watch_file); break;
|
||||
case MBT_WATCH_HANDLE: MemoryBookTypeWidths[i] = sizeof(watch_handle); break;
|
||||
|
||||
case MBT_NONE:
|
||||
case MBT_PERSON_PTR:
|
||||
case MBT_PROJECT_PTR:
|
||||
case MBT_SCOPE_TREE_PTR:
|
||||
case MBT_STRING:
|
||||
case MBT_STRING_PTR:
|
||||
case MBT_COUNT: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Coda(int Sig)
|
||||
{
|
||||
|
@ -16733,10 +16587,8 @@ main(int ArgC, char **Args)
|
|||
{
|
||||
MEM_TEST_TOP("main()");
|
||||
InitInterruptHandler();
|
||||
Assert(ArrayCount(MemoryBookTypeWidths) == MBT_COUNT);
|
||||
Assert(ArrayCount(BufferIDStrings) == BID_COUNT);
|
||||
Assert(ArrayCount(TemplateTags) == TEMPLATE_TAG_COUNT);
|
||||
InitMemoryBookTypeWidths();
|
||||
char CommandLineArg;
|
||||
char *ConfigPath = "$XDG_CONFIG_HOME/cinera/cinera.conf";
|
||||
while((CommandLineArg = getopt(ArgC, Args, "0c:ehv")) != -1)
|
||||
|
@ -16799,7 +16651,7 @@ main(int ArgC, char **Args)
|
|||
|
||||
CollationBuffers.Search.ID = BID_COLLATION_BUFFERS_SEARCH; // NOTE(matt): Allocated by SearchToBuffer()
|
||||
|
||||
memory_book TokensList = InitBook(MBT_TOKENS, 8);
|
||||
memory_book TokensList = InitBook(sizeof(tokens), 8);
|
||||
template BespokeTemplate = {};
|
||||
neighbourhood Neighbourhood = {};
|
||||
|
||||
|
|
|
@ -343,7 +343,7 @@ tokens *
|
|||
PushTokens(memory_book *TokensList)
|
||||
{
|
||||
tokens *This = MakeSpaceInBook(TokensList);
|
||||
This->Token = InitBook(MBT_TOKEN, 16);
|
||||
This->Token = InitBook(sizeof(token), 16);
|
||||
This->CurrentLine = 1;
|
||||
return This;
|
||||
}
|
||||
|
@ -871,7 +871,7 @@ PushTypeSpec(memory_book *TypeSpecs, config_identifier_id ID, bool IsPermeable)
|
|||
//PrintFunctionName("PushTypeSpec()");
|
||||
config_type_spec *Result = MakeSpaceInBook(TypeSpecs);
|
||||
Result->ID = ID;
|
||||
Result->Field = InitBook(MBT_CONFIG_TYPE_FIELD, 4);
|
||||
Result->Field = InitBook(sizeof(config_type_field), 4);
|
||||
Result->Permeable = IsPermeable;
|
||||
return Result;
|
||||
}
|
||||
|
@ -891,7 +891,7 @@ _memory_book(config_type_specs)
|
|||
InitTypeSpecs(void)
|
||||
{
|
||||
//PrintFunctionName("InitTypeSpecs()");
|
||||
memory_book Result = InitBook(MBT_CONFIG_TYPE_SPEC, 16);
|
||||
memory_book Result = InitBook(sizeof(config_type_spec), 16);
|
||||
|
||||
config_type_spec *Root = PushTypeSpec(&Result, IDENT_NULL, FALSE);
|
||||
PushTypeSpecField(Root, FT_STRING, IDENT_ASSETS_ROOT_DIR, TRUE);
|
||||
|
@ -1261,7 +1261,7 @@ SetTypeSpec(scope_tree *Type, memory_book *TypeSpecs)
|
|||
//PrintTypeSpec(Spec);
|
||||
Type->TypeSpec.ID = Spec->ID;
|
||||
Type->TypeSpec.Permeable = Spec->Permeable;
|
||||
Type->TypeSpec.Field = InitBook(MBT_CONFIG_TYPE_FIELD, 4);
|
||||
Type->TypeSpec.Field = InitBook(sizeof(config_type_field), 4);
|
||||
for(int i = 0; i < Spec->Field.ItemCount; ++i)
|
||||
{
|
||||
config_type_field *Src = GetPlaceInBook(&Spec->Field, i);
|
||||
|
@ -1660,10 +1660,10 @@ PushBoolPair(scope_tree *Parent, config_bool_pair *B)
|
|||
void
|
||||
InitScopeBooks(scope_tree *Scope)
|
||||
{
|
||||
Scope->Trees = InitBook(MBT_SCOPE_TREE, 4);
|
||||
Scope->Pairs = InitBook(MBT_CONFIG_PAIR, 4);
|
||||
Scope->IntPairs = InitBook(MBT_CONFIG_INT_PAIR, 4);
|
||||
Scope->BoolPairs = InitBook(MBT_CONFIG_BOOL_PAIR, 4);
|
||||
Scope->Trees = InitBook(sizeof(scope_tree), 4);
|
||||
Scope->Pairs = InitBook(sizeof(config_pair), 4);
|
||||
Scope->IntPairs = InitBook(sizeof(config_int_pair), 4);
|
||||
Scope->BoolPairs = InitBook(sizeof(config_bool_pair), 4);
|
||||
}
|
||||
|
||||
scope_tree *
|
||||
|
@ -2411,7 +2411,7 @@ ScopeTokens(scope_tree *Tree, memory_book *TokensList, tokens *T, memory_book *T
|
|||
{
|
||||
int IncludePathTokenIndex = T->CurrentIndex - 1;
|
||||
config_include_rules Rules = {};
|
||||
Rules.ID = InitBook(MBT_CONFIG_IDENTIFIER_ID, 4);
|
||||
Rules.ID = InitBook(sizeof(config_identifier_id), 4);
|
||||
switch(ParseIncludeRules(TypeSpecs, &Parent->TypeSpec, T, &Rules))
|
||||
{
|
||||
case RC_SUCCESS:
|
||||
|
@ -2757,7 +2757,7 @@ string
|
|||
DeriveLineageOfProject(config *C, scope_tree *Project)
|
||||
{
|
||||
string Result = {};
|
||||
memory_book StringList = InitBookOfPointers(MBT_STRING_PTR, 4);
|
||||
memory_book StringList = InitBookOfPointers(4);
|
||||
if(Project)
|
||||
{
|
||||
string **Writer = MakeSpaceInBook(&StringList);
|
||||
|
@ -2797,7 +2797,7 @@ string
|
|||
DeriveLineageWithoutOriginOfProject(config *C, scope_tree *Project)
|
||||
{
|
||||
string Result = {};
|
||||
memory_book StringList = InitBookOfPointers(MBT_STRING_PTR, 4);
|
||||
memory_book StringList = InitBookOfPointers(4);
|
||||
if(Project->Parent && Project->Parent->ID.Key == IDENT_PROJECT)
|
||||
{
|
||||
string **Writer = MakeSpaceInBook(&StringList);
|
||||
|
@ -3116,7 +3116,7 @@ PushVariantUniquely(resolution_errors *E, memory_book *VariantStrings, string Pa
|
|||
variant_string *NewVariantString = MakeSpaceInBook(VariantStrings);
|
||||
NewVariantString->Path = Path;
|
||||
|
||||
NewVariantString->Variants = InitBook(MBT_VARIANT, 4);
|
||||
NewVariantString->Variants = InitBook(sizeof(variant), 4);
|
||||
variant *NewVariants = MakeSpaceInBook(&NewVariantString->Variants);
|
||||
*NewVariants = Variants;
|
||||
}
|
||||
|
@ -3325,7 +3325,7 @@ PushPersonOntoConfig(config *C, resolution_errors *E, config_verifiers *V, scope
|
|||
}
|
||||
#endif
|
||||
|
||||
This->Support = InitBook(MBT_SUPPORT, 2);
|
||||
This->Support = InitBook(sizeof(support), 2);
|
||||
for(int i = 0; i < PersonTree->Trees.ItemCount; ++i)
|
||||
{
|
||||
scope_tree *ThisSupport = GetPlaceInBook(&PersonTree->Trees, i);
|
||||
|
@ -3429,7 +3429,7 @@ void
|
|||
PushAssociation(config_string_associations *HMMLDirs, string *S0, string *S1, project *P)
|
||||
{
|
||||
config_string_association *This = MakeSpaceInBook(&HMMLDirs->Associations);
|
||||
This->Projects = InitBookOfPointers(MBT_PROJECT_PTR, 4);
|
||||
This->Projects = InitBookOfPointers(4);
|
||||
|
||||
if(S0) { This->String0 = *S0; }
|
||||
if(S1) { This->String1 = *S1; }
|
||||
|
@ -3508,14 +3508,14 @@ SetUniqueHMMLDir(config *C, resolution_errors *E, config_string_associations *HM
|
|||
void
|
||||
PushProject(config *C, resolution_errors *E, config_verifiers *V, project *P, scope_tree *ProjectTree)
|
||||
{
|
||||
P->Medium = InitBook(MBT_MEDIUM, 8);
|
||||
P->Child = InitBook(MBT_PROJECT, 8);
|
||||
P->Medium = InitBook(sizeof(medium), 8);
|
||||
P->Child = InitBook(sizeof(project), 8);
|
||||
#if(HMMLIB_MAJOR_VERSION == 2)
|
||||
P->Credit = InitBook(MBT_CREDIT, 4);
|
||||
P->Credit = InitBook(sizeof(credit), 4);
|
||||
#else
|
||||
P->Indexer = InitBookOfPointers(MBT_PERSON_PTR, 4);
|
||||
P->CoHost = InitBookOfPointers(MBT_PERSON_PTR, 4);
|
||||
P->Guest = InitBookOfPointers(MBT_PERSON_PTR, 4);
|
||||
P->Indexer = InitBookOfPointers(4);
|
||||
P->CoHost = InitBookOfPointers(4);
|
||||
P->Guest = InitBookOfPointers(4);
|
||||
#endif
|
||||
|
||||
config_string_associations *HMMLDirs = &V->HMMLDirs;
|
||||
|
@ -4810,18 +4810,18 @@ config_verifiers
|
|||
InitVerifiers(void)
|
||||
{
|
||||
config_verifiers Result = {};
|
||||
Result.VariantStrings = InitBook(MBT_VARIANT_STRING, 8);
|
||||
Result.VariantStrings = InitBook(sizeof(variant_string), 8);
|
||||
|
||||
Result.HMMLDirs.ID0 = IDENT_HMML_DIR;
|
||||
Result.HMMLDirs.Associations = InitBook(MBT_CONFIG_STRING_ASSOCIATION, 8);
|
||||
Result.HMMLDirs.Associations = InitBook(sizeof(config_string_association), 8);
|
||||
|
||||
Result.BaseDirAndSearchLocation.ID0 = IDENT_BASE_DIR;
|
||||
Result.BaseDirAndSearchLocation.ID1 = IDENT_SEARCH_LOCATION;
|
||||
Result.BaseDirAndSearchLocation.Associations = InitBook(MBT_CONFIG_STRING_ASSOCIATION, 8);
|
||||
Result.BaseDirAndSearchLocation.Associations = InitBook(sizeof(config_string_association), 8);
|
||||
|
||||
Result.BaseDirAndPlayerLocation.ID0 = IDENT_BASE_DIR;
|
||||
Result.BaseDirAndPlayerLocation.ID1 = IDENT_PLAYER_LOCATION;
|
||||
Result.BaseDirAndPlayerLocation.Associations = InitBook(MBT_CONFIG_STRING_ASSOCIATION, 8);
|
||||
Result.BaseDirAndPlayerLocation.Associations = InitBook(sizeof(config_string_association), 8);
|
||||
return Result;
|
||||
}
|
||||
|
||||
|
@ -4834,7 +4834,7 @@ IsPositioned(config_int_pair *Position)
|
|||
void
|
||||
PositionRolesInConfig(config *C, resolution_errors *E, config_verifiers *V, scope_tree *S)
|
||||
{
|
||||
memory_book RolesStaging = InitBookOfPointers(MBT_SCOPE_TREE_PTR, 4);
|
||||
memory_book RolesStaging = InitBookOfPointers(4);
|
||||
for(int i = 0; i < S->Trees.ItemCount; ++i)
|
||||
{
|
||||
scope_tree *Tree = GetPlaceInBook(&S->Trees, i);
|
||||
|
@ -4918,13 +4918,13 @@ ResolveVariables(scope_tree *S)
|
|||
Assert(LOG_COUNT == ArrayCount(LogLevelStrings));
|
||||
config *Result = calloc(1, sizeof(config));
|
||||
Result->ResolvedVariables = InitBookOfStrings(Kilobytes(1));
|
||||
Result->Person = InitBook(MBT_PERSON, 8);
|
||||
Result->Role = InitBook(MBT_ROLE, 4);
|
||||
Result->Project = InitBook(MBT_PROJECT, 8);
|
||||
Result->Person = InitBook(sizeof(person), 8);
|
||||
Result->Role = InitBook(sizeof(role), 4);
|
||||
Result->Project = InitBook(sizeof(project), 8);
|
||||
|
||||
resolution_errors Errors = {};
|
||||
Errors.Warnings = InitBook(MBT_RESOLUTION_ERROR, 16);
|
||||
Errors.Errors = InitBook(MBT_RESOLUTION_ERROR, 16);
|
||||
Errors.Warnings = InitBook(sizeof(resolution_error), 16);
|
||||
Errors.Errors = InitBook(sizeof(resolution_error), 16);
|
||||
|
||||
config_verifiers Verifiers = InitVerifiers();
|
||||
|
||||
|
|
Loading…
Reference in New Issue