Skip to content
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

pixy/host/pixymon/renderer.cpp:739: error: cast from 'int16_t* {aka short int*}' to 'unsigned int' loses precision [-fpermissive] #1

Open
ekiwi opened this issue Nov 4, 2013 · 2 comments

Comments

@ekiwi
Copy link
Contributor

ekiwi commented Nov 4, 2013

Hey,

I am a backer of the pixy project on kickstarter and out of my own self interest I started to try to compile the pixy host application on Linux (both my Laptop and my stationary PC run Fedora 19).
The first thing that the compiler complained about are the lines 739 and 740 in pixy/host/pixymon/renderer.cpp:

    unsigned int addr = (unsigned int)comps;
    unsigned int paddr = (unsigned int)&comps;

Here you try to cast a int16_t* into an unsigned int which does not work, because at least with my gcc version on linux you need an unsigned long int to hold the value of a pointer.
While this fixes the error emitted by the compiler:
Why do you try to cast a pointer to an integer in the first place? On a system with virtual memory this is generally not a good idea. At least you should use a reinterpret_cast to show that you know what you are doing.
Since addr and paddr are only used to initialize k and l, I can not figure out what your intent with this is.

Kevin

@richlegrand
Copy link
Contributor

Hi Kevin,
I'm not sure either--- but I don't think that routine used anymore. (needs
to be deleted)

The pixymon code is on a steep curve, so it's likely broken for some OS's,
and messy in parts.

thanks,
--rich

On Mon, Nov 4, 2013 at 2:36 PM, Electronic Kiwi [email protected]:

Hey,

I am a backer of the pixy project on kickstarter and out of my own self
interest I started to try to compile the pixy host application on Linux
(both my Laptop and my stationary PC run Fedora 19).
The first thing that the compiler complained about are the lines 739 and
740 in pixy/host/pixymon/renderer.cpp:

unsigned int addr = (unsigned int)comps;
unsigned int paddr = (unsigned int)&comps;

Here you try to cast a int16_t* into an unsigned int which does not work,
because at least with my gcc version on linux you need an unsigned long
int to hold the value of a pointer.
While this fixes the error emitted by the compiler:
Why do you try to cast a pointer to an integer in the first place? On a
system with virtual memory this is generally not a good idea. At least you
should use a reinterpret_cast to show that you know what you are doing.
Since addr and paddr are only used to initialize k and l, I can not
figure out what your intent with this is.

Kevin


Reply to this email directly or view it on GitHubhttps://github.com//issues/1
.

Charmed Labs
www.charmedlabs.com

@ekiwi
Copy link
Contributor Author

ekiwi commented Jan 29, 2014

This issue seems to be fixed. I think you can close it.

FlorianFranzen pushed a commit to InSilicoBrainSciences/libpixyusb that referenced this issue Nov 15, 2017
Fixed missing includes in pixy.h
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

No branches or pull requests

2 participants