-
Notifications
You must be signed in to change notification settings - Fork 134
Fix: Update the log callback to use int32 instead of enum in dll #1819
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
The call to the dll will still leverage the enum. This should ensure ABI stability over time
Summary of ChangesHello @AustinBenoit, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the Firebase Analytics SDK by improving the Application Binary Interface (ABI) stability of its log callback mechanism, transitioning the log level parameter from an enum to a fixed-size integer type. Concurrently, it introduces a new feature that enables configuration of the session timeout duration, offering greater flexibility in managing user sessions. The changes also include an update to the list of known DLL hashes, reflecting an update to the underlying Analytics library. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
✅ Integration test succeeded!Requested by @AustinBenoit on commit 4e9e85a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request aims to improve ABI stability by using int32_t instead of enums in the DLL interface, which is a commendable practice. It also introduces a new feature for configuring session timeout duration. While the changes for ABI stability are correctly implemented in the C++ wrappers, the pull request appears to be incomplete. The dynamic stub files for the Windows DLL have not been updated to reflect the changes in the C API header, which will lead to build failures or runtime errors for the new and modified functions. Additionally, there is a minor opportunity to enhance maintainability by dynamically calculating an array size instead of hardcoding it.
|
|
||
| // Count of known Google Analytics Windows DLL SHA256 hashes. | ||
| const int FirebaseAnalytics_KnownWindowsDllHashCount = 4; | ||
| const int FirebaseAnalytics_KnownWindowsDllHashCount = 5; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To improve maintainability and prevent potential mismatches in the future, it's better to calculate the number of hashes dynamically rather than hardcoding it. This ensures that the count is always in sync with the number of elements in the FirebaseAnalytics_KnownWindowsDllHashes array.
| const int FirebaseAnalytics_KnownWindowsDllHashCount = 5; | |
| const int FirebaseAnalytics_KnownWindowsDllHashCount = sizeof(FirebaseAnalytics_KnownWindowsDllHashes) / sizeof(FirebaseAnalytics_KnownWindowsDllHashes[0]); |
The call to the dll will still leverage the enum.
This should ensure ABI stability over time
Description
Testing
Leverage the existing log callback integration test
Type of Change
Place an
xthe applicable box:Notes
Release Notessection ofrelease_build_files/readme.md.