Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Gayed2006-11-01 21:26:08 +0000
committerGrant Gayed2006-11-01 21:26:08 +0000
commit26a48f41196f4829dd63b0dda900cce2acdd93e3 (patch)
tree2c4c52170eae78724edc4939157b9202bba3eafd
parentcd8099463836ef9c5f052a86a32aa0b6ff518407 (diff)
downloadeclipse.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.java15
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/Browser.java13
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);

Back to the top