index 91b82bf8c0465f99626d544d4f787421a15d0e23..7da9b61ce94f0558220d745007e8a8f53688abf7 100644 (file)
#include <gc.h>
#include "../../oberon-internals.h"
+#include "../../oberon-type-compat.h"
#include "../../generator.h"
#include "generator-jvm.h"
#include "generator-jvm-abi.h"
t -> postfix = jvm_get_postfix(type);
}
- if(type -> class == OBERON_TYPE_POINTER ||
+ if((type -> class == OBERON_TYPE_POINTER && type -> base -> class == OBERON_TYPE_RECORD) ||
type -> class == OBERON_TYPE_PROCEDURE ||
type -> class == OBERON_TYPE_RECORD ||
type -> class == OBERON_TYPE_SYSTEM_PTR)
}
else if(prefix == 'a')
{
- if(t -> class == OBERON_TYPE_STRING
- || (t -> class == OBERON_TYPE_POINTER && t -> base -> class == OBERON_TYPE_CHAR))
+ if(oberon_is_array_of_char_type(t) || oberon_is_string_type(t))
{
jvm_generate(p, 2, 1, "invokestatic SYSTEM/STRCMP([B[B)I");
jvm_generate(p, 1, 0, "if%s L%i", cmpop, label_true);