From d9965e587905cd715ecd4c7150236d660321a02c Mon Sep 17 00:00:00 2001
From: Eduardo Julian
Date: Thu, 23 Aug 2018 17:18:30 -0400
Subject: Optimized text clipping.

---
 .../source/luxc/lang/translation/jvm/procedure/common.jvm.lux  |  9 ++++-----
 new-luxc/source/luxc/lang/translation/jvm/runtime.jvm.lux      | 10 ++--------
 2 files changed, 6 insertions(+), 13 deletions(-)

(limited to 'new-luxc')

diff --git a/new-luxc/source/luxc/lang/translation/jvm/procedure/common.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/procedure/common.jvm.lux
index 1b784ee76..a0a34d9ad 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/procedure/common.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/procedure/common.jvm.lux
@@ -223,7 +223,7 @@
           paramI <pre-param>
           <op> <post>))]
 
-  [text::= id id
+  [text::= (<|) (<|)
    (_.INVOKEVIRTUAL "java.lang.Object" "equals" (_t.method (list ///.$Object) (#.Some _t.boolean) (list)) #0)
    (_.wrap #$.Boolean)]
   [text::< ..check-stringI ..check-stringI
@@ -231,10 +231,10 @@
    (predicateI _.IFLT)]
   [text::concat ..check-stringI ..check-stringI
    (_.INVOKEVIRTUAL "java.lang.String" "concat" (_t.method (list $String) (#.Some $String) (list)) #0)
-   id]
+   (<|)]
   [text::char ..check-stringI jvm-intI
    (_.INVOKESTATIC ///.runtime-class "text_char" (_t.method (list $String _t.int) (#.Some ///.$Variant) (list)) #0)
-   id]
+   (<|)]
   )
 
 (do-template [<name> <pre-subject> <pre-param> <pre-extra> <op>]
@@ -246,8 +246,7 @@
           <op>))]
 
   [text::clip ..check-stringI jvm-intI jvm-intI
-   (_.INVOKESTATIC ///.runtime-class "text_clip"
-                   (_t.method (list $String _t.int _t.int) (#.Some ///.$Variant) (list)) #0)]
+   (_.INVOKEVIRTUAL "java.lang.String" "substring" (_t.method (list _t.int _t.int) (#.Some $String) (list)) #0)]
   )
 
 (def: index-method Method (_t.method (list $String _t.int) (#.Some _t.int) (list)))
diff --git a/new-luxc/source/luxc/lang/translation/jvm/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/runtime.jvm.lux
index 20c31bd5d..3c8563d75 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/runtime.jvm.lux
@@ -133,17 +133,11 @@
 
 (def: text-methods
   Def
-  (|>> ($d.method #$.Public $.staticM "text_clip" ($t.method (list $String $t.int $t.int) (#.Some $Variant) (list))
+  (|>> ($d.method #$.Public $.staticM "text_char" ($t.method (list $String $t.int) (#.Some $Variant) (list))
                   (try-methodI
                    (|>> (_.ALOAD 0)
                         (_.ILOAD 1)
-                        (_.ILOAD 2)
-                        (_.INVOKEVIRTUAL "java.lang.String" "substring" ($t.method (list $t.int $t.int) (#.Some $String) (list)) #0))))
-       ($d.method #$.Public $.staticM "text_char" ($t.method (list $String $t.int) (#.Some $Variant) (list))
-                  (try-methodI
-                   (|>> (_.ALOAD 0)
-                        (_.ILOAD 1)
-                        (_.INVOKEVIRTUAL "java.lang.String" "codePointAt" ($t.method (list $t.int) (#.Some $t.int) (list)) #0)
+                        (_.INVOKEVIRTUAL "java.lang.String" "charAt" ($t.method (list $t.int) (#.Some $t.char) (list)) #0)
                         _.I2L
                         (_.wrap #$.Long))))
        ))
-- 
cgit v1.2.3