PUD: fix compiler doing weird type downcasting
authorFerry Huberts <f.huberts@mindef.nl>
Tue, 1 Nov 2011 16:53:11 +0000 (17:53 +0100)
committerFerry Huberts <f.huberts@mindef.nl>
Tue, 1 Nov 2011 16:53:35 +0000 (17:53 +0100)
the expression
  (updateTimeSeconds * 1000)
resulted in a long, but it should be a long long

Signed-off-by: Ferry Huberts <f.huberts@mindef.nl>
lib/pud/wireformat-java/src/main/c/org_olsr_plugin_pud_PositionUpdate.c

index 1be9aba..718b865 100644 (file)
@@ -141,8 +141,8 @@ JNIEXPORT jlong JNICALL Java_org_olsr_plugin_pud_PositionUpdate_getPositionUpdat
        UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
                        &isCopy);
 
-       jlong baseDateSeconds = baseDate / 1000;
-       jlong baseDateMilliSeconds = baseDate % 1000;
+       jlong baseDateSeconds = baseDate / 1000LL;
+       jlong baseDateMilliSeconds = baseDate % 1000LL;
 
        struct tm timeStruct;
        time_t updateTimeSeconds;
@@ -153,9 +153,10 @@ JNIEXPORT jlong JNICALL Java_org_olsr_plugin_pud_PositionUpdate_getPositionUpdat
        releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
 
        updateTimeSeconds = mktime(&timeStruct);
-       return (updateTimeSeconds * 1000) + baseDateMilliSeconds - timezoneOffset;
+       return (updateTimeSeconds * 1000LL) + baseDateMilliSeconds - timezoneOffset;
 }
 
+
 /*
  * Class:     org_olsr_plugin_pud_PositionUpdate
  * Method:    getPositionUpdateLatitude