lmi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi] FFFFFFFF:FFFFFFFF


From: Greg Chicares
Subject: [lmi] FFFFFFFF:FFFFFFFF
Date: Sat, 12 Dec 2015 02:17:12 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0

I wanted to test the patch below [0], so I added "false &&" just for
testing (I wouldn't commit that part) and tried loading a complex
census (perhaps one date field that varies by cell is complex enough).
I got an error message that seems not to be very useful (so I'll
remove the "lmi::TypeInfo(typeid(value))" part). Then, it crashed.
IIRC, it was an access violation at an address that was all hex 'F',
like FFFFFFFF:FFFFFFFF. My JIT debugger then printed an "abort, retry,
ignore" message saying that it had tried to access invalid memory; I
selected "ignore" a few times, and it finally finished. Then I copied
its screen contents to this VM's clipboard and pasted that into
IceWeasel, which froze for ten minutes until I killed it.

I report this in case it indicates a problem with wx.

---------

[0] "the patch below":

Index: census_view.cpp
===================================================================
--- census_view.cpp     (revision 6436)
+++ census_view.cpp     (working copy)
@@ -42,6 +42,7 @@
 #include "ledger_text_formats.hpp"
 #include "miscellany.hpp"               // is_ok_for_cctype()
 #include "path_utility.hpp"
+#include "rtti_lmi.hpp"
 #include "safely_dereference_as.hpp"
 #include "single_choice_popup_menu.hpp"
 #include "timer.hpp"
@@ -680,15 +681,34 @@
         {
         tn_range_base const* as_range = member_cast<tn_range_base>(value);
         if(typeid(int) == as_range->value_type())
+            {
             return get_impl<renderer_int_range_convertor>();
+            }
         else if(typeid(double) == as_range->value_type())
+            {
             return get_impl<renderer_double_range_convertor>();
-        else if(typeid(calendar_date) == as_range->value_type())
+            }
+        else if(false &&    typeid(calendar_date) == as_range->value_type())
+            {
             return get_impl<renderer_date_convertor>();
+            }
+        else
+            {
+            warning()
+                << "Range type '"
+                << lmi::TypeInfo(typeid(value))
+                << "' unrecognized; it will be treated as a string."
+                << " Please report this issue."
+                << LMI_FLUSH
+                ;
+            // Fall through to treat datum as string.
+            }
         }
     else
         {
         ; // Fall through.
+        // TODO ?? 'ce_product_name' is missing; it's silently treated
+        // as a string type, which is not what's really wanted.
         }

     return get_impl<renderer_fallback_convertor>();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]