Skip to content

Commit

Permalink
Fixed many bugs. Not complete.
Browse files Browse the repository at this point in the history
  • Loading branch information
ax-6 committed Aug 15, 2024
1 parent 240447e commit 8dab082
Show file tree
Hide file tree
Showing 20 changed files with 75 additions and 40 deletions.
1 change: 1 addition & 0 deletions aqvm/base/file/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseFileWindows)
endif()

target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseFileIdentifier)
target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseMemory)
target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseThreadingFileLock)
30 changes: 15 additions & 15 deletions aqvm/base/file/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

#include "aqvm/base/io/io.h"
#include "aqvm/base/memory/memory.h"
#include "aqvm/base/process/file_lock/file_lock.h"
#include "aqvm/base/threading/file_lock/file_lock.h"
#include "aqvm/base/threading/mutex/mutex.h"
Expand Down Expand Up @@ -124,13 +124,13 @@ int AqvmBaseFile_fclose(struct AqvmBaseFile_File* stream) {
}

int result = fclose(stream->file);
free(stream->identifier);
AqvmBaseMemory_free(stream->identifier);
if (AqvmBaseThreadingFileLock_RemoveFileLock(stream) != 0) {
// TODO
free(stream);
AqvmBaseMemory_free(stream);
return -2;
}
free(stream);
AqvmBaseMemory_free(stream);

if (result != 0) {
// TODO
Expand Down Expand Up @@ -228,14 +228,14 @@ struct AqvmBaseFile_File* AqvmBaseFile_fopen(const char* filename,
sizeof(AqvmBaseFileIdentifier_Identifier));
if (stream->identifier == NULL) {
// TODO
free(stream);
AqvmBaseMemory_free(stream);
return NULL;
}

stream->file = fopen(filename, mode);
if (stream->file == NULL || AqvmBaseFile_ferror(stream) != 0) {
free(stream->identifier);
free(stream);
AqvmBaseMemory_free(stream->identifier);
AqvmBaseMemory_free(stream);
// TODO
return NULL;
}
Expand All @@ -244,15 +244,15 @@ struct AqvmBaseFile_File* AqvmBaseFile_fopen(const char* filename,
0) {
// TODO
fclose(stream->file);
free(stream->identifier);
free(stream);
AqvmBaseMemory_free(stream->identifier);
AqvmBaseMemory_free(stream);
return NULL;
}

if (AqvmBaseThreadingFileLock_AddFileLock(stream) != 0) {
fclose(stream->file);
free(stream->identifier);
free(stream);
AqvmBaseMemory_free(stream->identifier);
AqvmBaseMemory_free(stream);
return NULL;
}

Expand Down Expand Up @@ -515,7 +515,7 @@ struct AqvmBaseFile_File* AqvmBaseFile_tmpfile() {

stream->file = tmpfile();
if (stream->file == NULL || AqvmBaseFile_ferror(stream) != 0) {
free(stream);
AqvmBaseMemory_free(stream);
// TODO
return NULL;
}
Expand All @@ -524,14 +524,14 @@ struct AqvmBaseFile_File* AqvmBaseFile_tmpfile() {
if (stream->identifier == NULL) {
// TODO
fclose(stream->file);
free(stream);
AqvmBaseMemory_free(stream);
return NULL;
}
if (AqvmBaseThreadingFileLock_AddFileLock(stream) != 0) {
// TODO
fclose(stream->file);
free(stream->identifier);
free(stream);
AqvmBaseMemory_free(stream->identifier);
AqvmBaseMemory_free(stream);
return NULL;
}
return stream;
Expand Down
4 changes: 3 additions & 1 deletion aqvm/base/file/read_write_lock/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ include_directories(${PROJECT_SOURCE_DIR})

set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/read_write_lock.c)

add_library(AqvmBaseFileReadWriteLock STATIC ${SOURCES})
add_library(AqvmBaseFileReadWriteLock STATIC ${SOURCES})

target_link_libraries(AqvmBaseFileReadWriteLock PRIVATE AqvmBaseMemory)
4 changes: 3 additions & 1 deletion aqvm/base/file/read_write_lock/read_write_lock.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

#include "aqvm/base/file/read_write_lock/read_write_lock.h"

#include "aqvm/base/memory/memory.h"

struct AqvmBaseFileReadWriteLock_ReadWriteLock*
AqvmBaseFileReadWriteLock_CreateReadWriteLock() {
struct AqvmBaseFileReadWriteLock_ReadWriteLock* read_write_lock =
Expand All @@ -29,7 +31,7 @@ int AqvmBaseFileReadWriteLock_DestroyReadWriteLock(
}

int result = AqvmBaseThreadingMutex_DestoryMutex(&read_write_lock->mutex);
free(read_write_lock);
AqvmBaseMemory_free(read_write_lock);
if (result != 0) {
// TODO
return -2;
Expand Down
4 changes: 3 additions & 1 deletion aqvm/base/hash/table/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ include_directories(${PROJECT_SOURCE_DIR})

set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/table.c)

add_library(AqvmBaseHashTable STATIC ${SOURCES})
add_library(AqvmBaseHashTable STATIC ${SOURCES})

target_link_libraries(AqvmBaseHashTable PRIVATE AqvmBaseMemory)
6 changes: 3 additions & 3 deletions aqvm/base/hash/table/table.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
#include "aqvm/base/hash/table/table.h"

#include <stddef.h>
#include <stdlib.h>

#include "aqvm/base/linked_list/linked_list.h"
#include "aqvm/base/memory/memory.h"

int AqvmBaseHashTable_CloseHashTable(
struct AqvmBaseHashTable_HashTable* hash_table) {
Expand All @@ -19,7 +19,7 @@ int AqvmBaseHashTable_CloseHashTable(
for (size_t i = 0; i < hash_table->capacity; i++) {
AqvmBaseLinkedList_CloseLinkedList(&hash_table->data[i]);
}
free(hash_table->data);
AqvmBaseMemory_free(hash_table->data);
hash_table->data = NULL;
hash_table->capacity = 0;
hash_table->size = 0;
Expand All @@ -35,7 +35,7 @@ int AqvmBaseHashTable_InitializeHashTable(

hash_table->capacity = capacity;
hash_table->size = 0;
hash_table->data = (struct AqvmBaseLinkedList_LinkedList*)malloc(
hash_table->data = (struct AqvmBaseLinkedList_LinkedList*)AqvmBaseMemory_malloc(
sizeof(struct AqvmBaseLinkedList_LinkedList) * capacity);
if (hash_table->data == NULL) {
// TODO
Expand Down
4 changes: 3 additions & 1 deletion aqvm/base/linked_list/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ include_directories(${PROJECT_SOURCE_DIR})

set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/linked_list.c)

add_library(AqvmBaseLinkedList STATIC ${SOURCES})
add_library(AqvmBaseLinkedList STATIC ${SOURCES})

target_link_libraries(AqvmBaseLinkedList PRIVATE AqvmBaseMemory)
7 changes: 4 additions & 3 deletions aqvm/base/linked_list/linked_list.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
#include "aqvm/base/linked_list/linked_list.h"

#include <stddef.h>
#include <stdlib.h>

#include "aqvm/base/memory/memory.h"

int AqvmBaseLinkedList_AddNode(struct AqvmBaseLinkedList_LinkedList* list,
void* data) {
Expand Down Expand Up @@ -41,7 +42,7 @@ int AqvmBaseLinkedList_CloseLinkedList(
struct AqvmBaseLinkedList_Node* next_node = NULL;
while (list->capacity > 0) {
next_node = delete_node->next;
free(delete_node);
AqvmBaseMemory_free(delete_node);
delete_node = next_node;
--list->capacity;
}
Expand All @@ -65,7 +66,7 @@ int AqvmBaseLinkedList_DeleteNode(struct AqvmBaseLinkedList_LinkedList* list,
if (list->tail == delete_node) list->tail = delete_node->prev;
if (delete_node->prev != NULL) delete_node->prev->next = delete_node->next;
if (delete_node->next != NULL) delete_node->next->prev = delete_node->prev;
free(delete_node);
AqvmBaseMemory_free(delete_node);
--list->capacity;
return 0;
}
Expand Down
9 changes: 8 additions & 1 deletion aqvm/base/memory/memory.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,15 @@
#include "aqvm/base/memory/memory.h"

#include <stddef.h>
#include <stdlib.h>

void* AqvmBaseMemory_AqvmBaseMemory_malloc(size_t size) { return AqvmBaseMemory_malloc(size); }
void* AqvmBaseMemory_malloc(size_t size) {
void* ptr = malloc(size);
if (ptr == NULL) {
// TODO
}
return ptr;
}

int AqvmBaseMemory_free(void* ptr) {
if (ptr == NULL) {
Expand Down
2 changes: 1 addition & 1 deletion aqvm/base/memory/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#include <stddef.h>

void* AqvmBaseMemory_AqvmBaseMemory_malloc(size_t size);
void* AqvmBaseMemory_malloc(size_t size);

int AqvmBaseMemory_free(void* ptr);

Expand Down
4 changes: 3 additions & 1 deletion aqvm/base/threading/file_lock/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ include_directories(${PROJECT_SOURCE_DIR})

set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/file_lock.c)

add_library(AqvmBaseThreadingFileLock STATIC ${SOURCES})
add_library(AqvmBaseThreadingFileLock STATIC ${SOURCES})

target_link_libraries(AqvmBaseThreadingFileLock PRIVATE AqvmBaseMemory)
4 changes: 2 additions & 2 deletions aqvm/base/threading/file_lock/file_lock.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
#include "aqvm/base/threading/file_lock/file_lock.h"

#include <stddef.h>
#include <stdlib.h>

#include "aqvm/base/file/file.h"
#include "aqvm/base/file/identifier/identifier.h"
#include "aqvm/base/file/read_write_lock/read_write_lock.h"
#include "aqvm/base/hash/table/table.h"
#include "aqvm/base/memory/memory.h"
#include "aqvm/base/linked_list/linked_list.h"
#include "aqvm/base/pair.h"

Expand Down Expand Up @@ -56,7 +56,7 @@ int AqvmBaseThreadingFileLock_AddFileLock(struct AqvmBaseFile_File* file) {
1024],
file_lock_pair) != 0) {
// TODO
free(file_lock_pair);
AqvmBaseMemory_free(file_lock_pair);
return -3;
}
}
Expand Down
1 change: 1 addition & 0 deletions aqvm/base/threading/mutex/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ endif()

add_library(AqvmBaseThreadingMutex STATIC ${SOURCES})

target_link_libraries(AqvmBaseThreadingMutex PRIVATE AqvmBaseMemory)
if (UNIX)
target_link_libraries(AqvmBaseThreadingMutex PRIVATE AqvmBaseThreadingMutexUnix)
elseif (WIN32)
Expand Down
9 changes: 6 additions & 3 deletions aqvm/base/threading/mutex/mutex.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,18 @@

#include "aqvm/base/threading/mutex/mutex.h"

#include "aqvm/base/memory/memory.h"

AqvmBaseThreadingMutex_Mutex* AqvmBaseThreadingMutex_CreateMutex() {
#ifdef __unix__
return AqvmBaseThreadingMutexUnix_CreateMutex();
#elif _WIN32
return AqvmBaseThreadingMutexWindows_CreateMutex();
#else
// TODO(Threading): When Threading is developed, rewrite that code.
AqvmBaseThreadingMutex_Mutex* mutex = (AqvmBaseThreadingMutex_Mutex*)AqvmBaseMemory_malloc(
sizeof(AqvmBaseThreadingMutex_Mutex));
AqvmBaseThreadingMutex_Mutex* mutex =
(AqvmBaseThreadingMutex_Mutex*)AqvmBaseMemory_malloc(
sizeof(AqvmBaseThreadingMutex_Mutex));
if (mutex == NULL) {
// TODO
return NULL;
Expand Down Expand Up @@ -42,7 +45,7 @@ int AqvmBaseThreadingMutex_DestroyMutex(AqvmBaseThreadingMutex_Mutex* mutex) {
return 0;
#else
// TODO(Threading): When Threading is developed, rewrite that code.
free(mutex);
AqvmBaseMemory_free(mutex);
return 0;
#endif
}
Expand Down
4 changes: 3 additions & 1 deletion aqvm/base/threading/mutex/unix/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ include_directories(${PROJECT_SOURCE_DIR})

set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/mutex.c)

add_library(AqvmBaseThreadingMutexUnix STATIC ${SOURCES})
add_library(AqvmBaseThreadingMutexUnix STATIC ${SOURCES})

target_link_libraries(AqvmBaseThreadingMutexUnix PRIVATE AqvmBaseMemory)
4 changes: 3 additions & 1 deletion aqvm/base/threading/mutex/unix/mutex.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

#include "aqvm/base/threading/mutex/unix/mutex.h"

#include "aqvm/base/memory/memory.h"

AqvmBaseThreadingMutexUnix_Mutex *AqvmBaseThreadingMutexUnix_CreateMutex() {
AqvmBaseThreadingMutexUnix_Mutex *mutex =
(AqvmBaseThreadingMutexUnix_Mutex *)AqvmBaseMemory_malloc(
Expand All @@ -29,7 +31,7 @@ int AqvmBaseThreadingMutexUnix_DestroyMutex(
}

int result = pthread_mutex_destroy(mutex);
free(mutex);
AqvmBaseMemory_free(mutex);
if (result != 0) {
// TODO
return -2;
Expand Down
4 changes: 3 additions & 1 deletion aqvm/base/threading/mutex/windows/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ include_directories(${PROJECT_SOURCE_DIR})

set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/mutex.c)

add_library(AqvmBaseThreadingMutexWindows STATIC ${SOURCES})
add_library(AqvmBaseThreadingMutexWindows STATIC ${SOURCES})

target_link_libraries(AqvmBaseThreadingMutexWindows PRIVATE AqvmBaseMemory)
4 changes: 3 additions & 1 deletion aqvm/base/threading/mutex/windows/mutex.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
#include <stdio.h>
#include <windows.h>

#include "aqvm/base/memory/memory.h"

AqvmBaseThreadingMutexWindows_Mutex*
AqvmBaseThreadingMutexWindows_CreateMutex() {
AqvmBaseThreadingMutexWindows_Mutex* mutex =
Expand Down Expand Up @@ -36,7 +38,7 @@ int AqvmBaseThreadingMutexWindows_DestroyMutex(
// TODO
return -2;
}
free(mutex);
AqvmBaseMemory_free(mutex);
return 0;
}

Expand Down
4 changes: 3 additions & 1 deletion aqvm/memory/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/memory.c)

add_library(AqvmMemory STATIC ${SOURCES})

target_link_libraries(AqvmMemory PRIVATE AqvmBase)
target_link_libraries(AqvmMemory PRIVATE AqvmBase)

target_link_libraries(AqvmMemory PRIVATE AqvmBaseMemory)
6 changes: 4 additions & 2 deletions aqvm/memory/memory.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <string.h>

#include "aqvm/base/logging/logging.h"
#include "aqvm/base/memory/memory.h"
#include "aqvm/memory/types.h"

int AqvmMemory_CheckMemoryConditions() {
Expand Down Expand Up @@ -70,7 +71,8 @@ struct AqvmMemory_Memory* AqvmMemory_InitializeMemory(void* data, void* type,
"Memory initialization started.", NULL);

struct AqvmMemory_Memory* memory_ptr =
(struct AqvmMemory_Memory*)AqvmBaseMemory_malloc(sizeof(struct AqvmMemory_Memory));
(struct AqvmMemory_Memory*)AqvmBaseMemory_malloc(
sizeof(struct AqvmMemory_Memory));
if (memory_ptr == NULL) {
AqvmBaseLogging_OutputLog(
"ERROR", "AqvmMemory_InitializeMemory_MemoryAllocationFailure",
Expand All @@ -89,7 +91,7 @@ void AqvmMemory_FreeMemory(struct AqvmMemory_Memory* memory_ptr) {
AqvmBaseLogging_OutputLog("INFO", "AqvmMemory_FreeMemory_Start",
"Memory deallocation started.", NULL);

free(memory_ptr);
AqvmBaseMemory_free(memory_ptr);
}

int AqvmMemory_SetType(const struct AqvmMemory_Memory* memory, size_t index,
Expand Down

0 comments on commit 8dab082

Please sign in to comment.