support signed integers, negative numbers; binary format change: encode numbers as SLEB128 v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Fri, 13 Dec 2019 22:19:41 +0100
branchv_0
changeset 29 caee22a6370a
parent 28 bbfb1944d269
child 30 3ce384eaad5c
support signed integers, negative numbers; binary format change: encode numbers as SLEB128
src/GuileHandler.h
--- a/src/GuileHandler.h	Wed Oct 30 16:47:44 2019 +0100
+++ b/src/GuileHandler.h	Fri Dec 13 22:19:41 2019 +0100
@@ -145,7 +145,7 @@
 			{
 				assert(typeInfo == typeid (integer_t));
 				auto* typedValue = static_cast<const integer_t*> (value);
-				return scm_from_uint64(*typedValue);
+				return scm_from_int64(*typedValue);
 			}
 			case TypeId::STRING:
 			{
@@ -181,7 +181,7 @@
 			}
 			case writer::TypeId::INTEGER:
 			{
-				integer_t value = stoul(definition.value);
+				integer_t value = stol(definition.value);
 				defineGuileVariable(definition.name, &value, typeid (value), TypeId::INTEGER);
 				break;
 			}
@@ -212,7 +212,7 @@
 			}
 			case writer::TypeId::INTEGER:
 			{
-				integer_t value = scm_to_uint64(guileValue);
+				integer_t value = scm_to_int64(guileValue);
 				return relationalWriter->writeAttribute(&value, typeid (value));
 			}
 			case writer::TypeId::STRING: