Skip to content

Commit

Permalink
Merge pull request #268 from parasol-framework/test/new-placement
Browse files Browse the repository at this point in the history
[GCC] Fixed issues with GCC v14 new-placement
  • Loading branch information
paul-manias authored Oct 15, 2024
2 parents 09cb770 + 1a289d4 commit a6fe117
Show file tree
Hide file tree
Showing 65 changed files with 148 additions and 102 deletions.
2 changes: 1 addition & 1 deletion docs/html/modules/classes/compressedstream.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/html/modules/classes/document.html

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions docs/html/modules/classes/svg.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/html/modules/core.html

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/xml/modules/classes/compressedstream.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
<const name="NewChild"/>
<const name="NewObject"/>
<const name="NewOwner"/>
<const name="NewPlacement"/>
<const name="Next"/>
<const name="Prev"/>
<const name="Query"/>
Expand Down
1 change: 1 addition & 0 deletions docs/xml/modules/core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2023,6 +2023,7 @@ SetField(Object, FID_Statement|TSTR, "string");
<const name="NewChild"/>
<const name="NewObject"/>
<const name="NewOwner"/>
<const name="NewPlacement"/>
<const name="Next"/>
<const name="Prev"/>
<const name="Query"/>
Expand Down
4 changes: 3 additions & 1 deletion include/parasol/modules/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,8 @@ enum class AC : LONG {
Clipboard = 45,
Refresh = 46,
Disable = 47,
END = 48,
NewPlacement = 48,
END = 49,
};

// Permission flags
Expand Down Expand Up @@ -1447,6 +1448,7 @@ struct Edges {
#define AHASH_SORT 0x7c9e066d
#define AHASH_SAVESETTINGS 0x475f7165
#define AHASH_SIGNAL 0x1bc6ade3
#define AHASH_NEWPLACEMENT 0x9b0a0468
#define AHASH_UNDO 0x7c9f191b


Expand Down
2 changes: 1 addition & 1 deletion scripts/dev/idl/common.fdl
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ enum("AC", { type="int", start=1, comment="Action identifiers.", module="Core" }
"MoveToBack", "MoveToFront", "NewChild", "NewOwner", "NewObject", "Redo", "Query",
"Read", "Rename", "Reset", "Resize", "SaveImage", "SaveToObject", "MoveToPoint",
"Seek", "SetKey", "Show", "Undo", "Unlock", "Next", "Prev",
"Write", "SetField", "Clipboard", "Refresh", "Disable",
"Write", "SetField", "Clipboard", "Refresh", "Disable", "NewPlacement",
"END")

flags("PERMIT", { comment="Permission flags", module="Core" },
Expand Down
3 changes: 2 additions & 1 deletion scripts/dev/idl/idl-c.fluid
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

glSelf = obj.find('self')
glPath = glSelf.workingPath
glIDLTimestamp = 20240625
glIDLTimestamp = 20241015

----------------------------------------------------------------------------------------------------------------------

Expand All @@ -23,6 +23,7 @@ glActionStubs = {
NewChild = "",
NewObject = "",
NewOwner = "",
NewPlacement = "",

-- Actions without parameters
Activate = " inline ERR activate() noexcept { return Action(AC::Activate, this, NULL); }",
Expand Down
1 change: 1 addition & 0 deletions scripts/dev/idl/idl-doc.fluid
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ glIgnoreList[AC_Init] = true
glIgnoreList[AC_NewChild] = true
glIgnoreList[AC_NewObject] = true
glIgnoreList[AC_NewOwner] = true
glIgnoreList[nz(AC_NewPlacement,0)] = true

function setAction(Action, Options)
for k, v in pairs(Options) do
Expand Down
1 change: 1 addition & 0 deletions src/audio/audio_def.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ static const struct ActionArray clAudioActions[] = {
{ AC::Free, AUDIO_Free },
{ AC::Init, AUDIO_Init },
{ AC::NewObject, AUDIO_NewObject },
{ AC::NewPlacement, AUDIO_NewPlacement },
{ AC::SaveSettings, AUDIO_SaveSettings },
{ AC::SaveToObject, AUDIO_SaveToObject },
{ AC::NIL, NULL }
Expand Down
8 changes: 6 additions & 2 deletions src/audio/class_audio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -499,8 +499,6 @@ static ERR AUDIO_NewObject(extAudio *Self)
{
pf::Log log;

new (Self) extAudio;

Self->OutputRate = 44100; // Rate for output to speakers
Self->InputRate = 44100; // Input rate for recording
Self->Quality = 80;
Expand Down Expand Up @@ -537,6 +535,12 @@ static ERR AUDIO_NewObject(extAudio *Self)
return ERR::Okay;
}

static ERR AUDIO_NewPlacement(extAudio *Self)
{
new (Self) extAudio;
return ERR::Okay;
}

/*********************************************************************************************************************
-METHOD-
Expand Down
5 changes: 2 additions & 3 deletions src/audio/class_sound.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -898,10 +898,9 @@ static ERR SOUND_Init(extSound *Self)

//********************************************************************************************************************

static ERR SOUND_NewObject(extSound *Self)
static ERR SOUND_NewPlacement(extSound *Self)
{
new (Self) extSound;

Self->Compression = 50; // 50% compression by default
Self->Volume = 1.0; // Playback at 100% volume level
Self->Pan = 0;
Expand Down Expand Up @@ -1748,7 +1747,7 @@ static const ActionArray clActions[] = {
{ AC::Free, SOUND_Free },
{ AC::GetKey, SOUND_GetKey },
{ AC::Init, SOUND_Init },
{ AC::NewObject, SOUND_NewObject },
{ AC::NewPlacement, SOUND_NewPlacement },
{ AC::Read, SOUND_Read },
{ AC::SaveToObject, SOUND_SaveToObject },
{ AC::Seek, SOUND_Seek },
Expand Down
2 changes: 1 addition & 1 deletion src/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ if (BUILD_DEFS)
COMMAND ${PARASOL_CMD} ${IDL_C_SCRIPT} "--log-warning" "src=defs/registry.fdl" "output=${INCLUDE_OUTPUT}/system/registry.h" "sdk=${PROJECT_SOURCE_DIR}"
COMMAND ${PARASOL_CMD} ${IDL_C_SCRIPT} "--log-warning" "src=defs/fields.fdl" "output=${INCLUDE_OUTPUT}/system/fields.h" "sdk=${PROJECT_SOURCE_DIR}"
COMMAND ${PARASOL_CMD} ${IDL_C_SCRIPT} "--log-warning" "src=defs/core.fdl" "sdk=${PROJECT_SOURCE_DIR}" "output-proto=prototypes.h" "output-defs=data_functions.c" "files={" ${FUNCTIONS} "}"
COMMAND ${PARASOL_CMD} ${IDL_DEF_SCRIPT} "--log-warning" "src=defs/core.fdl" "output=${CMAKE_CURRENT_SOURCE_DIR}/idl.h" "sdk=${PROJECT_SOURCE_DIR}" "format=c"
COMMAND ${PARASOL_CMD} ${IDL_COMPILE_SCRIPT} "--log-warning" "src=defs/core.fdl" "output=${CMAKE_CURRENT_SOURCE_DIR}/idl.h" "sdk=${PROJECT_SOURCE_DIR}" "format=c"
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/defs/core.fdl"
"${CMAKE_CURRENT_SOURCE_DIR}/defs/errors.fdl"
Expand Down
4 changes: 2 additions & 2 deletions src/core/classes/class_file.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -841,11 +841,11 @@ static ERR FILE_MoveFile(extFile *Self, struct fl::Move *Args)

//********************************************************************************************************************

static ERR FILE_NewObject(extFile *Self)
static ERR FILE_NewPlacement(extFile *Self)
{
new (Self) extFile;
Self->Handle = -1;
Self->Permissions = PERMIT::READ|PERMIT::WRITE|PERMIT::GROUP_READ|PERMIT::GROUP_WRITE;
new (Self) extFile;
return ERR::Okay;
}

Expand Down
2 changes: 1 addition & 1 deletion src/core/classes/class_file_def.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ static const struct ActionArray clFileActions[] = {
{ AC::DataFeed, FILE_DataFeed },
{ AC::Free, FILE_Free },
{ AC::Init, FILE_Init },
{ AC::NewObject, FILE_NewObject },
{ AC::NewPlacement, FILE_NewPlacement },
{ AC::Query, FILE_Query },
{ AC::Read, FILE_Read },
{ AC::Rename, FILE_Rename },
Expand Down
6 changes: 3 additions & 3 deletions src/core/classes/class_metaclass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ static const FieldArray glMetaFields[] = {
extern "C" ERR CLASS_FindField(extMetaClass *, struct mc::FindField *);
extern "C" ERR CLASS_Free(extMetaClass *);
extern "C" ERR CLASS_Init(extMetaClass *);
extern "C" ERR CLASS_NewObject(extMetaClass *);
extern "C" ERR CLASS_NewPlacement(extMetaClass *);

FDEF argsFindField[] = { { "ID", FD_LONG }, { "Field:Field", FD_RESULT|FD_PTR|FD_STRUCT }, { "Source", FD_RESULT|FD_OBJECTPTR }, { 0, 0 } };

Expand Down Expand Up @@ -182,7 +182,7 @@ void init_metaclass(void)

glMetaClass.ActionTable[LONG(AC::Free)].PerformAction = (ERR (*)(OBJECTPTR, APTR))CLASS_Free;
glMetaClass.ActionTable[LONG(AC::Init)].PerformAction = (ERR (*)(OBJECTPTR, APTR))CLASS_Init;
glMetaClass.ActionTable[LONG(AC::NewObject)].PerformAction = (ERR (*)(OBJECTPTR, APTR))CLASS_NewObject;
glMetaClass.ActionTable[LONG(AC::NewPlacement)].PerformAction = (ERR (*)(OBJECTPTR, APTR))CLASS_NewPlacement;
glMetaClass.ActionTable[LONG(AC::Signal)].PerformAction = &DEFAULT_Signal;

sort_class_fields(&glMetaClass, glMetaClass.FieldLookup);
Expand Down Expand Up @@ -380,7 +380,7 @@ ERR CLASS_Init(extMetaClass *Self)

//********************************************************************************************************************

ERR CLASS_NewObject(extMetaClass *Self)
ERR CLASS_NewPlacement(extMetaClass *Self)
{
new (Self) extMetaClass;
Self->Local[0] = 0xff;
Expand Down
10 changes: 5 additions & 5 deletions src/core/classes/class_module.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,12 @@ static const FieldArray glModuleFields[] = {

static ERR MODULE_Init(extModule *);
static ERR MODULE_Free(extModule *);
static ERR MODULE_NewObject(extModule *);
static ERR MODULE_NewPlacement(extModule *);

static const ActionArray glModuleActions[] = {
{ AC::Free, MODULE_Free },
{ AC::Init, MODULE_Init },
{ AC::NewObject, MODULE_NewObject },
{ AC::NewPlacement, MODULE_NewPlacement },
{ AC::NIL, NULL }
};

Expand Down Expand Up @@ -286,7 +286,7 @@ ERR ROOTMODULE_Free(RootModule *Self)

//********************************************************************************************************************

static ERR ROOTMODULE_NewObject(RootModule *Self)
static ERR ROOTMODULE_NewPlacement(RootModule *Self)
{
new (Self) RootModule;
return ERR::Okay;
Expand Down Expand Up @@ -489,7 +489,7 @@ static ERR MODULE_Init(extModule *Self)

//********************************************************************************************************************

static ERR MODULE_NewObject(extModule *Self)
static ERR MODULE_NewPlacement(extModule *Self)
{
new (Self) extModule;
return ERR::Okay;
Expand Down Expand Up @@ -738,7 +738,7 @@ static const FieldArray glRootModuleFields[] = {

static const ActionArray glRootModuleActions[] = {
{ AC::Free, ROOTMODULE_Free },
{ AC::NewObject, ROOTMODULE_NewObject },
{ AC::NewPlacement, ROOTMODULE_NewPlacement },
{ AC::NIL, NULL }
};

Expand Down
2 changes: 1 addition & 1 deletion src/core/classes/class_script.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ static ERR SCRIPT_Init(objScript *Self)

//********************************************************************************************************************

static ERR SCRIPT_NewObject(objScript *Self)
static ERR SCRIPT_NewPlacement(objScript *Self)
{
new (Self) objScript;

Expand Down
2 changes: 1 addition & 1 deletion src/core/classes/class_script_def.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ static const struct ActionArray clScriptActions[] = {
{ AC::Free, SCRIPT_Free },
{ AC::GetKey, SCRIPT_GetKey },
{ AC::Init, SCRIPT_Init },
{ AC::NewObject, SCRIPT_NewObject },
{ AC::NewPlacement, SCRIPT_NewPlacement },
{ AC::Reset, SCRIPT_Reset },
{ AC::SetKey, SCRIPT_SetKey },
{ AC::NIL, NULL }
Expand Down
6 changes: 3 additions & 3 deletions src/core/classes/class_task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ static ERR TASK_Free(extTask *);
static ERR TASK_GetEnv(extTask *, struct task::GetEnv *);
static ERR TASK_GetKey(extTask *, struct acGetKey *);
static ERR TASK_Init(extTask *);
static ERR TASK_NewObject(extTask *);
static ERR TASK_NewPlacement(extTask *);
static ERR TASK_SetEnv(extTask *, struct task::SetEnv *);
static ERR TASK_SetKey(extTask *, struct acSetKey *);
static ERR TASK_Write(extTask *, struct acWrite *);
Expand All @@ -126,7 +126,7 @@ static const ActionArray clActions[] = {
{ AC::Activate, TASK_Activate },
{ AC::Free, TASK_Free },
{ AC::GetKey, TASK_GetKey },
{ AC::NewObject, TASK_NewObject },
{ AC::NewPlacement, TASK_NewPlacement },
{ AC::SetKey, TASK_SetKey },
{ AC::Init, TASK_Init },
{ AC::Write, TASK_Write },
Expand Down Expand Up @@ -1414,7 +1414,7 @@ static ERR TASK_Init(extTask *Self)

//********************************************************************************************************************

static ERR TASK_NewObject(extTask *Self)
static ERR TASK_NewPlacement(extTask *Self)
{
new (Self) extTask;
#ifdef __unix__
Expand Down
2 changes: 1 addition & 1 deletion src/core/classes/class_task_def.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ static const struct ActionArray clTaskActions[] = {
{ AC::Free, TASK_Free },
{ AC::GetKey, TASK_GetKey },
{ AC::Init, TASK_Init },
{ AC::NewObject, TASK_NewObject },
{ AC::NewPlacement, TASK_NewPlacement },
{ AC::SetKey, TASK_SetKey },
{ AC::Write, TASK_Write },
{ AC::NIL, NULL }
Expand Down
2 changes: 1 addition & 1 deletion src/core/classes/class_thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ static ERR THREAD_Init(extThread *Self)

//********************************************************************************************************************

static ERR THREAD_NewObject(extThread *Self)
static ERR THREAD_NewPlacement(extThread *Self)
{
new (Self) extThread;
Self->StackSize = 16384;
Expand Down
2 changes: 1 addition & 1 deletion src/core/classes/class_thread_def.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ static const struct ActionArray clThreadActions[] = {
{ AC::Free, THREAD_Free },
{ AC::FreeWarning, THREAD_FreeWarning },
{ AC::Init, THREAD_Init },
{ AC::NewObject, THREAD_NewObject },
{ AC::NewPlacement, THREAD_NewPlacement },
{ AC::NIL, NULL }
};

8 changes: 6 additions & 2 deletions src/core/compression/class_compression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1864,8 +1864,6 @@ static ERR COMPRESSION_NewObject(extCompression *Self)
{
pf::Log log;

new (Self) extCompression;

if (AllocMemory(SIZE_COMPRESSION_BUFFER, MEM::DATA, (APTR *)&Self->Output, NULL) IS ERR::Okay) {
if (AllocMemory(SIZE_COMPRESSION_BUFFER, MEM::DATA, (APTR *)&Self->Input, NULL) IS ERR::Okay) {
Self->CompressionLevel = 60; // 60% compression by default
Expand All @@ -1879,6 +1877,12 @@ static ERR COMPRESSION_NewObject(extCompression *Self)
else return log.warning(ERR::AllocMemory);
}

static ERR COMPRESSION_NewPlacement(extCompression *Self)
{
new (Self) extCompression;
return ERR::Okay;
}

/*********************************************************************************************************************

-METHOD-
Expand Down
1 change: 1 addition & 0 deletions src/core/compression/class_compression_def.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ static const struct ActionArray clCompressionActions[] = {
{ AC::Free, COMPRESSION_Free },
{ AC::Init, COMPRESSION_Init },
{ AC::NewObject, COMPRESSION_NewObject },
{ AC::NewPlacement, COMPRESSION_NewPlacement },
{ AC::NIL, NULL }
};

1 change: 1 addition & 0 deletions src/core/data_actionlist.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,5 +74,6 @@ extern "C" const struct ActionTable ActionTable[] = { // Sorted by action ID.
{ AHASH_CLIPBOARD, sizeof(struct acClipboard), "Clipboard", argsClipboard },
{ AHASH_REFRESH, 0, "Refresh", 0 },
{ AHASH_DISABLE, 0, "Disable", 0 },
{ AHASH_NEWPLACEMENT, 0, "NewPlacement", 0 },
{ 0, 0, 0, 0 }
};
2 changes: 1 addition & 1 deletion src/core/data_errors.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const CSTRING glMessages[LONG(ERR::END)+1] = {
"Array is at low capacity.",
"Error in Init()ialising an object.",
"General security violation.",
"The operating system has been badly corrupted.",
"System corruption detected.",
"I need a container to operate correctly.",
"My container needs to have a Bitmap field.",
"I need a newer version of the kernel.",
Expand Down
19 changes: 9 additions & 10 deletions src/core/defs/core.fdl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--$FLUID:Include

module({ name="Core", copyright="Paul Manias 1996-2024", timestamp=20240625 }, function()
module({ name="Core", copyright="Paul Manias 1996-2024", timestamp=20241015 }, function()
c_include("<stdarg.h>", "<inttypes.h>")
cpp_include("<list>", "<map>", "<string>", "<vector>", "<unordered_map>", "<bit>", "<atomic>", "<array>")

Expand Down Expand Up @@ -80,15 +80,14 @@ inline ENUMTYPE &operator &= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((_
"PIPE: Enable the output pipe to the launched process so that it can read data.")

hash("AHASH", "0x%s",
"ACTIVATE", "CLEAR", "FREEWARNING", "COPYDATA",
"DATAFEED", "DEACTIVATE", "DRAW", "FLUSH", "FOCUS", "FREE",
"GETKEY", "DRAGDROP", "HIDE", "INIT", "LOCK", "LOSTFOCUS", "MOVE",
"MOVETOBACK", "MOVETOFRONT", "NEWCHILD", "NEWOWNER", "NEWOBJECT", "REDO", "QUERY",
"READ", "RENAME", "RESET", "RESIZE", "SAVEIMAGE", "SAVETOOBJECT",
"SEEK", "SETKEY", "SHOW", "TIMER", "UNLOCK", "NEXT", "PREV",
"WRITE", "SETFIELD", "CLIPBOARD", "REFRESH", "DISABLE", "ENABLE", "REDIMENSION",
"MOVETOPOINT", "SORT", "SAVESETTINGS", "SIGNAL",
"UNDO")
"ACTIVATE", "CLEAR", "FREEWARNING", "COPYDATA",
"DATAFEED", "DEACTIVATE", "DRAW", "FLUSH", "FOCUS", "FREE",
"GETKEY", "DRAGDROP", "HIDE", "INIT", "LOCK", "LOSTFOCUS", "MOVE",
"MOVETOBACK", "MOVETOFRONT", "NEWCHILD", "NEWOWNER", "NEWOBJECT", "REDO", "QUERY",
"READ", "RENAME", "RESET", "RESIZE", "SAVEIMAGE", "SAVETOOBJECT",
"SEEK", "SETKEY", "SHOW", "TIMER", "UNLOCK", "NEXT", "PREV",
"WRITE", "SETFIELD", "CLIPBOARD", "REFRESH", "DISABLE", "ENABLE", "REDIMENSION",
"MOVETOPOINT", "SORT", "SAVESETTINGS", "SIGNAL", "NEWPLACEMENT", "UNDO")

flags("MHF", { comment="Internal options for requesting function tables from modules." },
"STATIC: Keep the module code in memory",
Expand Down
2 changes: 1 addition & 1 deletion src/core/idl.h

Large diffs are not rendered by default.

Loading

0 comments on commit a6fe117

Please sign in to comment.