diff options
author | Grant Gayed | 2006-11-01 21:26:08 +0000 |
---|---|---|
committer | Grant Gayed | 2006-11-01 21:26:08 +0000 |
commit | 26a48f41196f4829dd63b0dda900cce2acdd93e3 (patch) | |
tree | 2c4c52170eae78724edc4939157b9202bba3eafd | |
parent | cd8099463836ef9c5f052a86a32aa0b6ff518407 (diff) | |
download | eclipse.platform.swt-26a48f41196f4829dd63b0dda900cce2acdd93e3.tar.gz eclipse.platform.swt-26a48f41196f4829dd63b0dda900cce2acdd93e3.tar.xz eclipse.platform.swt-26a48f41196f4829dd63b0dda900cce2acdd93e3.zip |
162146
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Browser.java | 15 | ||||
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java | 13 |
2 files changed, 23 insertions, 5 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Browser.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Browser.java index f467f7f919..e80cd3d92c 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Browser.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/motif/org/eclipse/swt/browser/Browser.java @@ -1815,10 +1815,19 @@ public boolean setText(String html) { nsIWebBrowserStream stream = new nsIWebBrowserStream(result[0]); rc = stream.OpenStream(uri.getAddress(), aContentType); if (rc != XPCOM.NS_OK) error(rc); - int /*long*/ ptr = XPCOM.PR_Malloc(data.length); + int ptr = XPCOM.PR_Malloc(data.length); XPCOM.memmove(ptr, data, data.length); - rc = stream.AppendToStream(ptr, data.length); - if (rc != XPCOM.NS_OK) error(rc); + int pageSize = 8192; + int pageCount = data.length / pageSize + 1; + int current = ptr; + for (int i = 0; i < pageCount; i++) { + int length = i == pageCount - 1 ? data.length % pageSize : pageSize; + if (length > 0) { + rc = stream.AppendToStream(current, length); + if (rc != XPCOM.NS_OK) error(rc); + } + current += pageSize; + } rc = stream.CloseStream(); if (rc != XPCOM.NS_OK) error(rc); XPCOM.PR_Free(ptr); diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java index 0d6b6632d8..2161169d26 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java @@ -1832,8 +1832,17 @@ public boolean setText(String html) { if (rc != XPCOM.NS_OK) error(rc); int /*long*/ ptr = XPCOM.PR_Malloc(data.length); XPCOM.memmove(ptr, data, data.length); - rc = stream.AppendToStream(ptr, data.length); - if (rc != XPCOM.NS_OK) error(rc); + int pageSize = 8192; + int pageCount = data.length / pageSize + 1; + int /*long*/ current = ptr; + for (int i = 0; i < pageCount; i++) { + int length = i == pageCount - 1 ? data.length % pageSize : pageSize; + if (length > 0) { + rc = stream.AppendToStream(current, length); + if (rc != XPCOM.NS_OK) error(rc); + } + current += pageSize; + } rc = stream.CloseStream(); if (rc != XPCOM.NS_OK) error(rc); XPCOM.PR_Free(ptr); |