Skip to content

Release v2.63.0#2320

Closed
CarterLi wants to merge 104 commits into
masterfrom
dev
Closed

Release v2.63.0#2320
CarterLi wants to merge 104 commits into
masterfrom
dev

Conversation

@CarterLi
Copy link
Copy Markdown
Member

Checklist

  • I have tested my changes locally.

CarterLi and others added 30 commits April 26, 2026 16:00
* Packages:add cards counting (NuTyX)

* package.c
no need to add counts.catds

* Sort packages print alphabetically

* ditto

* ditto

* packages.c
update FF_ARG and ffpackagesModule.info

---------

Co-authored-by: Carter Li <CarterLi@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Noop, because the whole platform is statically initialized

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: or sim <you@example.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Copilot AI review requested due to automatic review settings May 12, 2026 02:57
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 108 out of 108 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (8)

src/common/impl/sysctl.c:1

  • The malloc(*resultLength) NULL-check was removed. If allocation fails, sysctl() will be called with a NULL buffer and can crash. Restore an explicit if (!data) return NULL; (or equivalent error path) before calling sysctl().
    src/detection/de/de_linux.c:1
  • ffDBusGetString() returns a boolean success value; this condition treats success as failure and will incorrectly return an error while also leaving result populated. Flip the condition to fail only when ffDBusGetString(...) returns false.
    src/detection/media/media_windows.cpp:1
  • getMedia() returns NULL on success, but ffStrbufAppendS(&media->error, error) is still called unconditionally. If ffStrbufAppendS doesn't accept NULL (common for string append APIs), this can crash. Guard the append (if (error) ...) or change getMedia() to return an empty string on success.
    src/common/impl/settings.c:1
  • This function assigns raw char* pointers from the E_Config* parsed object into ffEnlightenmentSettings, but parsed is never freed and ownership/lifetime are unclear. This risks either a leak (current behavior) or a future use-after-free if parsed is ever freed. Consider copying these strings into caller-owned buffers (e.g., FFstrbuf) or documenting/adding a matching destroy/free API for ffEnlightenmentSettings that frees the underlying EET-allocated data.
    src/common/impl/settings.c:1
  • This function assigns raw char* pointers from the E_Config* parsed object into ffEnlightenmentSettings, but parsed is never freed and ownership/lifetime are unclear. This risks either a leak (current behavior) or a future use-after-free if parsed is ever freed. Consider copying these strings into caller-owned buffers (e.g., FFstrbuf) or documenting/adding a matching destroy/free API for ffEnlightenmentSettings that frees the underlying EET-allocated data.
    src/detection/displayserver/linux/wayland/wayland.h:1
  • Defining a global min symbol in a public header is prone to name collisions (macros from other headers, C++ std::min, etc.). Rename this helper to a project-scoped name (e.g., ffMinU32) or use an existing project macro/util if available.
    src/detection/media/media_windows.cpp:1
  • This waits for WinRT async completion via a polling loop with ffTimeSleep(0), which can still cause unnecessary CPU wakeups/spin depending on scheduler behavior and how often get_Status is polled. Prefer an event-based wait (where possible) or add a small backoff (e.g., sleep a few ms) to reduce CPU usage while waiting.
    src/detection/media/media_windows.cpp:1
  • This waits for WinRT async completion via a polling loop with ffTimeSleep(0), which can still cause unnecessary CPU wakeups/spin depending on scheduler behavior and how often get_Status is polled. Prefer an event-based wait (where possible) or add a small backoff (e.g., sleep a few ms) to reduce CPU usage while waiting.

Copilot AI review requested due to automatic review settings May 13, 2026 03:08
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 115 out of 115 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (6)

src/options/general.c:1

  • The if/else if chain is syntactically broken: after the unconditional playerName branch closes with }, the following else if (...) under #if ... no longer attaches to the same chain, which will not compile. Fix by keeping dsForceDrm within the same else if chain (i.e., remove the stray } before the #if and structure as ... else if (playerName) ... #if ... else if (dsForceDrm) ... #endif else ...). The same issue also exists in ffOptionsParseGeneralCommandLine where --ds-force-drm is now preceded by a closed chain.
    src/detection/de/de_linux.c:1
  • ffDBusGetString is treated as 'true means failure' here, but other call sites (and the updated DBus helpers in this PR) use the convention that a successful extraction returns true. As written, Enlightenment DBus version detection will report failure even when parsing succeeds. Invert this condition (or otherwise align it with the project-wide success semantics) so that success does not produce an error.
    src/detection/media/media_apple.m:1
  • The authorized-process output is now parsed as a fixed set of 7 string lines (including cover) plus 2 numeric lines in getMediaByAuthorizedProcess, but when saveCover is false this code omits the cover line entirely. That shifts subsequent lines and causes position/length to be mis-parsed. Fix by always emitting the cover line (empty if saveCover is false), or update the parser to conditionally expect/skip the cover line based on the saveCover flag.
    src/detection/displayserver/linux/wayland/kde-output.c:1
  • Several listener callbacks that previously pointed to stubListener (e.g., sharpness, priority, and others depending on the generated header) are now left as NULL due to shortened initialization. If the compositor emits any of those events for the bound interface version, Wayland will call a NULL function pointer and crash. Initialize all fields up to the bound protocol version with stubListener (and optionally include newer fields too) to keep the listener safe.
    src/detection/media/media_windows.cpp:1
  • NtClose is not a Win32 API close routine for HANDLE in general user-mode code and is not declared by <windows.h>, which can lead to build failures and/or incorrect handle closing semantics across toolchains. Prefer CloseHandle(file) here (or include the project’s NT header and consistently use the NT wrapper types/functions if that is the intended convention).
    src/detection/displayserver/linux/wayland/wayland.h:1
  • Defining a globally visible min function in a shared header risks collisions with existing min macros/functions from system headers or other parts of the codebase. To avoid preprocessor conflicts and improve clarity, rename this helper to a project-scoped name (e.g., ffMinU32) or use an existing project min helper if available.

@CarterLi CarterLi closed this May 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.