registry keys of serial ports
Stefan Leichter
Stefan.Leichter at camline.com
Fri Sep 11 05:06:38 CDT 2009
Hello Dmitry,
Thank You for your review, but
Am Friday 11 September 2009 10:31:14 schrieb Dmitry Timoshkov:
> "Stefan Leichter" <Stefan.Leichter at camline.com> wrote:
> > i like to know what modifikations the attached patch needs to go into
> > git.
>
> 1. patch needs to be created with git
Next time you will tell me what editor to use ;-). This was _never_ needed
before
> 2. there is no need to create a new file
Currently the new file is small, but it will grow in the future as i wrote.
Also the drive stuff has its own file.
I like to hear AJ opinion here.
>
> > @@ -175,6 +180,16 @@
> > p_libhal_device_add_property_watch( ctx, udi, &error );
> > }
> > else if (guid_ptr) add_volume( udi, device, mount_point,
> > DEVICE_HARDDISK_VOL, guid_ptr ); + goto done;
>
> Is there any reason you are doing 'goto done' above?
>
Technically you are right. But the goto will make clear the code related to
the drive stuff is finished.
> > +
> > +serial:
> > + if (!(device = p_libhal_device_get_property_string( ctx, udi,
> > "serial.device", &error ))) + goto done;
> > +
> > + if ( -1 == (port = p_libhal_device_get_property_int( ctx, udi,
> > "serial.port", &error ))) + goto done;
>
> 'if ( -1 == port...' doesn't match existing style, 'if (port... == -1)'
> does. Same for other places.
>
> > +
> > + add_serial_device(port, device);
> >
> > done:
> > if (type) p_libhal_free_string( type );
> >
> > +NTSTATUS add_serial_device(int port, const char *device)
> > +{
> > + static const WCHAR format_data[] = {'C','O','M','%','d',0};
> > + static const WCHAR serialcom[] = {'M','a','c','h','i','n','e','\\',
> > +
> > 'H','A','R','D','W','A','R','E','\\', +
> > 'D','E','V','I','C','E','M','A','P','\\', +
> > 'S','E','R','I','A','L','C','O','M','M',0}; + static const
> > UNICODE_STRING serialcom_str
> > + = {sizeof(serialcom)-1, sizeof(serialcom),
> > (WCHAR*) serialcom};
>
> You should not cast away 'const'.
What do you suggest to get around the compiler warning
"warning: assignment discards qualifiers from pointer target type"
>
> > +
> > + CHAR value[50];
> > + HANDLE targetKey = NULL;
> > + NTSTATUS retval;
> > + OBJECT_ATTRIBUTES attr;
> > + UNICODE_STRING valueU = {0, 0, NULL};
>
> Initialization is not needed above since you are doing it anyway.
Do you know what RtlFreeUnicodeString() does on uninitialized variables (on
all supported operating systems)? I will move some code to make sure the sure
the variable is initialize always
>
> > + WCHAR data[10];
> > +
> > + attr.Length = sizeof(attr);
> > + attr.RootDirectory = 0;
> > + attr.ObjectName = (UNICODE_STRING*) &serialcom_str;
>
> You should not cast away 'const'.
s.a.
--
Stefan
More information about the wine-devel
mailing list