Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
vala
vala
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 702
    • Issues 702
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 38
    • Merge Requests 38
  • Operations
    • Operations
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • External Wiki
    • External Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
  • GNOME
  • valavala
  • Issues
  • #373

Closed
Open
Opened Apr 11, 2013 by bugzilla-migration@bugzilla-migrationReporter

internal fields appear in public header/struct

Submitted by Simon McVittie

Link to original bug (#697777)

Description

Until recently, libfolks-telepathy had this:

public class Tpf.PersonaStore : Folks.PersonaStore
{
  ...
  internal SmallSet`<string>` _supported_fields;
  internal Set`<string>` _supported_fields_ro;
  ...
}

When compiled without using --internal-vapi or --internal-header, this results in the C struct in the public header looking like this:

    struct _TpfPersonaStore {
            FolksPersonaStore parent_instance;
            TpfPersonaStorePrivate * priv;
            FolksSmallSet* _supported_fields;
            GeeSet* _supported_fields_ro;
    };

and the header from the .vapi for FolksSmallSet being #include'd.

Unfortunately, FolksSmallSet is declared in a header that isn't installed (it's a private C implementation of Gee.Set optimized for small or empty sets), so this broke the build of dependent projects.

Ideally, adding "internal Foo" to a class shouldn't result in changes to the public header (although I can't really see a way to to achieve that).

Version: 0.18.x

Edited Apr 08, 2020 by Michael Gratton
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: GNOME/vala#373