On Tue, 2016-09-20 at 00:28 -0400, G 3 wrote:
> +     RegEntryID *entry_id;
> +     OSErr err;
> +     OSStatus os_status = noErr;
> +     Boolean is_done;
> +     void *value;
> +     RegPropertyValueSize property_size = -1;
> +     int index, res_set_count;
> +     char *set_str;
> +
> +     #define PROPERTY_NAME "resolutions"
> +     #define NODE_PATH "Devices:device-tree:options"
> +
> +     /* init the entry variable */
> +     err = RegistryEntryIDInit(entry_id);
> +     if (err != noErr) {
> +             lprintf("Error: Failed to init entry variable!
> (Error: %d)\n", err);
> +             return err;
> +     }
> +     is_done = false;
> +

No, you need to allocate the RegistryEntryID on the stack otherwise
you are whacking at a random uninitialized pointer. IE:

        RegistryEntryID entry_id;

        RegistryEntryIDInit(&entry_id);
        .../...

See if that helps with your OS X problem. Also I don't like the
use of pow(), there must be a better way ... Check if there's anything
of value to be picked up from DSL, otherwise, put those utilities
somewhere in common, other drivers might want them.

(What does our lprintf implementation do for example ?)

Cheers,
Ben.


Reply via email to